3. Classes
In object oriented programming classes
represent objects with different
characteristics (attributes, data) and
functionality (operations, methods).
8. Example
public class Person {
private String name;
Data declaration
private String socialSecurityNo;
public void sleeps() {
}
public void walks() {
}
}
Method declaration
9. Example
public class Person {
private String name;
private String socialSecurityNo;
Instance variables –
variables created at the
class level
Each instance of a class
(object) has its own instance
variables/data space
public void sleeps() {
}
public void walks() {
}
}
Each instance of a class
(object) share the method
definitions
10. Constructor
•
•
•
Creates (and initializes) an object
Similar to a method that has:
•
•
the same name as the class
no return type
Each class has a default constructor that
accepts no parameters (this is generated
only if no explicit constructor is provided).
11. Constructor
public class Test {
public static void main(String[] args) {
Person p = new Person();
}
}
The default
constructor is called
12. Constructor
public class Person {
private String name;
private String socialSecurityNo;
public Person(String name, String socialSecurityNo) {
this.name = name;
Constructor
this.socialSecurityNo = socialSecurityNo;
}
public void sleeps() {
}
public void walks() {
}
}
this is a reference to the
current object
13. Constructor
public class Test {
public static void main(String[] args) {
Person p = new Person("Mary", "078-05-1120");
}
}
14. Constructor
public class Test {
public static void main(String[] args) {
Person p1 = new Person("Mary", "078-05-1120");
Person p2 = new Person(“John", "078-05-1121");
}
}
name
name
Mary
John
socialSecurityNo
socialSecurityNo
078-05-1120
078-05-1121
Each instance of a
class (object) has its
own instance
variables/data space.
15. Encapsulation
•
•
Hides the data and implementation details
of an object
Protects the data integrity by making it
difficult to have unauthorized access
16. Encapsulation
•
Uses visibility modifiers (e.g. private) to
deny access
private String name;
private String socialSecurityNo;
name and
socialSecurityNo can
be referenced only
within Person class
public class Test {
public static void main(String[] args) {
Person p = new Person("Mary", "078-05-1120");
p.name = "Alice";
}
}
error
19. Encapsulation
Accessor method (getter) – returns the
variable value.
public class Test {
public static void main(String[] args) {
Person p = new Person("Mary", "078-05-1120");
System.out.println(p.getName());
}
}
Will print Mary
p
name
Mary
socialSecurityNo
078-05-1120
21. Encapsulation
Mutator method (setter) – changes the variable value
public class Test {
public static void main(String[] args) {
Person p = new Person("Mary", "078-05-1120");
System.out.println(p.getName()); //will print Mary
p
p.setName("Alice");
System.out.println(p.getName()); //will print Alice
}
}
name
Mary Alice
socialSecurityNo
078-05-1120
22. Summary
• Initialize instance variables in the
constructor
• Make the instance variables private
unless there is a good reason to do
otherwise
• Allow access to instance variables
through setter and getter methods