You are on page 1of 22

Programming with Objects and Classes

OO Programming Concepts Declaring and Creating Objects Constructors Modifiers (public, private)


an entity in the real world that can be distinctly identified. it has a unique identity, state and behaviors.
the state of an object is represented by data fields (also known as properties) The behavior of an object is defined by as set of methods.

an instance of a class


a template or blueprint that defines what an objects data and methods will be. one can create many instances of a class. Creating an instance is referred to as instantiation. is a construct that defines objects of the same type.

OO Programming Concepts
An object data field 1 ... data field n method 1 ... method n Behavior State
Method findArea A Circle object Data Field radius = 5

Class and Objects

Circle radius findArea new Circle() circle1: Circle radius = 2 ... new Circle() circlen: Circle radius = 5 Graphical notation for objects Graphical notation for classes

Class Declaration
class Circle { double radius = 1.0; double findArea() { return radius*radius*3.14159; }

Declaring Objects
ClassName objectName;

Circle myCircle;

Creating Objects
objectName = new ClassName();

myCircle = new Circle();

Declaring/Creating Objects in a Single Step

ClassName objectName = new ClassName();

Circle myCircle = new Circle();

Differences between variables of primitive Data types and object types

Primitive type Object type int i = 1 Circle c i c 1 reference

c: Circle Created using new Circle(5) radius = 5

Copying Variables of Primitive Data Types and Object Types

Primitive type assignment i=j Object type assignment c1 = c2

Before: i j 1 2

After: i j 2 2

Before: c1 c2 c1: Circle radius = 5

After: c1 c2 c2: Circle radius = 9

Accessing Objects

the objects data:

the objects method:


Example 1 Using Objects


Demonstrate creating objects, accessing data, and using methods. Sample:


a special kind of method are invoked when a new object is created. are designed to perform initializing actions such as initializing the data fields of objects. are used to construct objects, has exactly the same name as the defining class. can be overloaded (multiple constructors with the same name but different signatures)

Circle(double r) { radius = r; } Circle() { radius = 1.0; } myCircle = new Circle(5.0);

Example 2 Using Constructors


Discuss the role of constructors and use them to create objects. Sample:

Passing Objects to Methods

Passing Passing

by reference by value

Example : Passing Objects as Arguments

Visibility Modifiers and Accessor Methods

By default, the class, variable, or data can be accessed by any class in the same package.

The class, data, or method is visible to any class in any package.


The data or methods can be accessed only by the declaring class. The getter and setter accessor methods are used to read and modify private properties.

Example 4 Using the private Modifier and Accessor Methods

In this example, private data are used for the radius and the accessor methods getRadius and setRadius are provided for the clients to retrieve and modify the radius.

Write a class named Rectangle to represent rectangles. The data fields are height and width declared as private. You need to provide the assessor methods for the properties and a method findArea() for computing the area of the rectangle. Write a client program to test the class Rectangle. In the client program, create two Rectangle objects. Assign any widths and heights to the two objects. Display

both object's properties and find their areas. Call your setter method that would update the width and height of the rectangle by 20%.

Sample Output: