Week 6
Deeper in classes:
this() & toString()
Dr. Nehad Ramaha,
Computer Engineering Department
Karabük Universities These Slides mainly adopted from Assist. Prof. Dr. Ozacar Kasim lecture notes
1
The class notes are a compilation and edition from many sources. The instructor does not claim intellectual property or ownership of the lecture notes.
• Class exercises
• Writing the PostOffice class
• Using this() methods
Table of • Using toString() methods
Contents • Garbage Collection and
Method finalize
• Another Exercise
• Rock Scissor Paper Game
CME225 OOP- Week 5 11/7/2021 2
3
this() constr uctor s are used to call (invoke) an alter nate constr uctor of the same class.
4
If you want to represent any object as a class Student{
int rollno;
string, toString() method comes into String name;
existence. Student(int rollno, String name){
this.rollno=rollno;
toString() returns a string representation of this.name=name;
the object. }
In general, the toString method returns a public String toString(){
return rollno+" "+name+" "+city;
string that "textually represents" this }
object.
public static void main(String args[]){
If you print any object, java compiler Student s1=new Student(101,“Jack",“Sparrow");
internally invokes the toString() method on Student s2=new Student(102,“Johnny",“Cash");
the object. System.out.println(s1);
We will mention it again in polymorphism. //compiler writes here s1.toString()
System.out.println(s2);
//compiler writes here s2.toString()
}
}
OUTPUT:
5
Every object uses system resources, such as memory.
• Wee need to give resources back to the system when they’re no
longer needed; otherwise, “resource leaks” might occur.
(OutOfMemoryErrors)
• In C/C++, programmer is responsible for both creation and destruction of objects.
• [int *ptr; ptr = (int *)malloc(sizeof(int)); *ptr = 25; free(ptr); ]
But, The JVM performs automatic garbage collection to destroys the objects no longer in
use.
• When there are no more references to an object, the object is
eligible to be collected. Collection typically occurs when the
JVM executes its garbage collector.
• Main objective of Garbage Collector is to free heap memory by
destroying unreachable objects.
6
Every class in Java has the methods of class Object (package
java.lang), one of which is method finalize.
finalize allows the garbage collector to perform termination
housekeeping on an object just before reclaiming the object’s
memory.
You should never use method finalize, because it can cause many
problems and there’s uncertainty as to whether it will ever get called
before a program terminates.
7
8
Rock Scissor Paper Game
If the pair is player1 is paper and player2 is rock then player1
wins
If the pair is player1 is scissors and player2 is paper then
player1 wins
If the pair is player1 is rock and player2 is scissors then
player1 wins
If Player1 is same as player2, then draw!
Else player2 wins
9
Rock Scissor Paper Game
10
Rock Scissor Paper Game
Arena Class
RockScissorPaper Class (main class)
11
Rock Scissor Paper Game Gamer Class
11/7/2021 12
Rock Scissor Paper Game
StatMaker Class Gamer 1 Gamer 2
Rock
Rock
Let's make this game. 13
14
Create a class called Person where, id, firstName,
lastName, and age attributes are declared.
Create four constructors
◦ In first, set all attributes;
◦ In the second, assign only first and last names,
automatically increment id and age will be set to zero;
◦ In the third, only set id, and set rest to default values;
◦ Int the last only increment id, set the rest to default
values.
15