[go: up one dir, main page]

0% found this document useful (0 votes)
70 views18 pages

Classes and Objects in Java - Addendum: Parameter Passing, Delegation, Visibility Control, and Object Cleanup

This document discusses key object-oriented programming concepts in Java including parameter passing, delegation, visibility control, and object cleanup. Parameter passing in Java passes a reference to the object, not the object itself. Delegation allows a class to invoke services of other objects through containership. Visibility control in Java uses access modifiers like public, private, and protected to control access to variables and methods. Java handles memory management automatically but the finalize method allows for any custom cleanup code.

Uploaded by

Kayemba Ismael
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
70 views18 pages

Classes and Objects in Java - Addendum: Parameter Passing, Delegation, Visibility Control, and Object Cleanup

This document discusses key object-oriented programming concepts in Java including parameter passing, delegation, visibility control, and object cleanup. Parameter passing in Java passes a reference to the object, not the object itself. Delegation allows a class to invoke services of other objects through containership. Visibility control in Java uses access modifiers like public, private, and protected to control access to variables and methods. Java handles memory management automatically but the finalize method allows for any custom cleanup code.

Uploaded by

Kayemba Ismael
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 18

Bsc Computer Engineering

Year II : Semester I 2010-2011 CMP2103: OOP

Lecture 3 : Classes and Objects in Java Addendum


Parameter Passing, Delegation, Visibility Control, and Object Cleanup
Adapted by Andrew Katumba

Eng. Math. Dept

Contents

Parameter Passing Object Delegation Visibility Control Object Cleanup Summary

Parameter passing

Method parameters which are objects are passed by reference. Copy of the reference to the object is passed into method, original value unchanged.

Parameter passing - Example


public class ReferenceTest { public static void main (String[] args) { Circle c1 = new Circle(5, 5, 20); Circle c2 = new Circle(1, 1, 10); System.out.println ( c1 Radius = + c1.getRadius()); System.out.println ( c2 Radius = + c2.getRadius()); parameterTester(c1, c2); System.out.println ( c1 Radius = + c1.getRadius()); System.out.println ( c2 Radius = + c2.getRadius()); } .. cont
4

Parameter passing - Example


public static void parameterTester(Circle circleA, Circle circleB) { circleA.setRadius(15); circleB = new Circle(0, 0, 100);

System.out.println ( circleA Radius = + circleA.getRadius()); System.out.println ( circleB Radius = + circleB.getRadius());


}

Parameter passing - Example

Output
c1 Radius = 20.0 c2 Radius = 10.0 circleA Radius = 15.0 circleB Radius = 100.0 c1 Radius = 15.0 c2 Radius = 10.0
6

Parameter passing - Example


STEP1 Before calling parameterTester() STEP2 parameterTester(c1, c2)

c1

c2

c1

c2

circleA

(5,5,20)

circleB

(1.1,10)

circleA

(5,5,20)

circleB

(1.1,10)

STEP3 circlA.setRadius(15) c1 c2

STEP4 circlB = new Cirlce(0,0,100) c1 c2

circleA

(5,5,15)

circleB

(1.1,10)

circleA

(5,5,15)

circleB

(1.1,10)

(0.0,100)

Parameter passing - Example


STEP5 After Returning from parameterTester c1 c2

circleA X

(5,5,15)

circleB

(1.1,10)

Delegation

Ability for a class to delegate its responsibilities to another class. A way of making an object invoking services of other objects through containership.

Delegation - Example
public class Point { private double xCoord; private double yCoord; // Constructor .

public double getXCoord(){ return xCoord; } public double getYCoord(){ return yCoord; }
}

Point xCoord yCoord getXCoord() getYCoord()

10

Delegation - Example
public class Circle { private Point centre; public double getCentreX(){ return centre.getXCoord(); } public double getCentreY(){ return centre.getYCoord(); } Circle }
centre getCentreX() getCentreY()

Point xCoord yCoord getXCoord() getYCoord()

11

Visibility Control: Data Hiding and Encapsulation

Java provides control over the visibility of variables and methods, encapsulation, safely sealing data within the capsule of the class Prevents programmers from relying on details of class implementation, so you can update without worry Helps in protecting against accidental or wrong usage. Keeps code elegant and clean (easier to maintain)
12

Visibility Modifiers: Public, Private, Protected

Public keyword applied to a class, makes it

available/visible everywhere. Applied to a method or variable, completely visible.

Default Public keyword applied to a class, makes it

Default (No visibility modifier is specified): it behaves like public in its package and private in other packages.

available/visible everywhere. Applied to a method or variable, completely visible. Private fields or methods for a class only visible within that class. Private members are not visible within subclasses, and are not inherited. Protected members of a class are visible within the class, subclasses and also within all classes that are in the same package as that class.
13

Visibility
public class Circle { private double x,y,r; // Constructor public Circle (double x, double y, double r) { this.x = x; this.y = y; this.r = r; } //Methods to return circumference and area public double circumference() { return 2*3.14*r;} public double area() { return 3.14 * r * r; } }
14

Visibility
Circle
Construction time message

Circle area message Center (x,y) Radius r

circumference

message

15

Accessors Getters/Setters
public class Circle { private double x,y,r; //Methods to return circumference and area public double getX() { return x;} public double getY() { return y;} public double getR() { return r;} public double setX(double x) { this.x = x;} public double serY(double y) { this.y = y;} public double setR(double r) { this.r = r;} }
More on Visibility during Inheritance and Package Discussion
16

Objects Cleanup/Destructor

Unlike c and c++, memory deallocation is automatic in java, dont worry about it no dangling pointers and no memory leak problem. Java allows you to define finalizer method, which is invoked (if defined) just before the object destruction. In way, this presents an opportunity to perform recordmaintenance operation or cleanup any special allocations made by the user.
// done with this circle protected void finalize() throws IOException { Circle.numCircles = Circle.numCircles--; System.out.println(number of circles:+ Circle.num_circles); }
17

Summary

Objects can be passed as parameters and they can be used for exchanging messages (data). Delegation enables an object to pass responsibilities to other objects. Encapsulation/Data hiding helps in protecting data from accidental or wrong usage and also offers better security for data. Java clean-ups object resources automatically, however, users can provide finalize() method to do any user-level related clean-up activities.

18

You might also like