classes revision

Post on 17-May-2015

966 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Classes Revision

CST200 – Week 4: Midterm revision

Instructor: Andreea Molnar

Outline

•Classes

•Example

•Constructor

•Encapsulation

Classes

In object oriented programming classes represent objects with different characteristics (attributes, data) and functionality (operations, methods).

Example

Person

Characteristics: name, social security number

Functionality: sleeps, walks

Example

Person

Attributes: name, social security number

Operations: sleeps, walks

Example

Person

Data: name, social security number

Methods: sleeps, walks

Example

Person

Data: define the state of the object

Methods: define the behavior of the object

Example

public class Person {

private String name;

private String socialSecurityNo;

public void sleeps() {

}

public void walks() {

}

}

Data declaration

Method declaration

Examplepublic class Person {

private String name;

private String socialSecurityNo;

public void sleeps() {

}

public void walks() {

}

}

Instance variables – variables created at

the class level

Each instance of a class (object) share the method

definitions

Each instance of a class (object) has its own instance

variables/data space

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).

Constructor

public class Test {

public static void main(String[] args) {

Person p = new Person();

}

}

The default constructor is

called

Constructorpublic class Person {

private String name;

private String socialSecurityNo;

public Person(String name, String socialSecurityNo) {

this.name = name;

this.socialSecurityNo = socialSecurityNo;

}

public void sleeps() {

}

public void walks() {

}

}

Constructor

this is a reference to the current

object

Constructor

public class Test {

public static void main(String[] args) {

Person p = new Person("Mary", "078-05-1120");

}

}

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");

}

}Mary

078-05-1120

John

078-05-1121

Each instance of a class (object)

has its own instance

variables/data space.

name name

socialSecurityNo

socialSecurityNo

Encapsulation

•Hides the data and implementation details of an object

•Protects the data integrity by making it difficult to have unauthorized access

Encapsulation•Uses visibility modifiers (e.g. private) to

deny accessprivate String name;

private String socialSecurityNo;

public class Test {

public static void main(String[] args) {

Person p = new Person("Mary", "078-05-1120");

p.name = "Alice";

}

}

name and socialSecurityNo can be referenced

only within Person class

error

Encapsulation

Allows access to instance variables through methods: accessor method (getter) and mutator method (setter)

Encapsulation

Accessor method (getter) – returns the variable value.

private String name;public String getName() {

return name;}

EncapsulationAccessor 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());}

}Mary

078-05-1120

name

socialSecurityNo

p

Will print Mary

Encapsulation

Mutator method (setter) – changes the variable value

private String name;public void setName(String name) {

this.name = name;}

EncapsulationMutator 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 Maryp.setName("Alice");System.out.println(p.getName()); //will print Alice

}}

Mary Alice

078-05-1120

name

socialSecurityNo

p

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

top related