![Page 1: Classes and Objects CS177 Rec 10. Announcements Project 4 is posted ◦ Milestone due on Nov. 12. ◦ Final submission due on Nov. 19. Exam 2 on Nov. 4 ◦](https://reader035.vdocument.in/reader035/viewer/2022062409/5697bfc51a28abf838ca6967/html5/thumbnails/1.jpg)
Classes and ObjectsClasses and ObjectsCS177 Rec 10
![Page 2: Classes and Objects CS177 Rec 10. Announcements Project 4 is posted ◦ Milestone due on Nov. 12. ◦ Final submission due on Nov. 19. Exam 2 on Nov. 4 ◦](https://reader035.vdocument.in/reader035/viewer/2022062409/5697bfc51a28abf838ca6967/html5/thumbnails/2.jpg)
AnnouncementsAnnouncementsProject 4 is posted
◦Milestone due on Nov. 12.◦Final submission due on Nov. 19.
Exam 2 on Nov. 4◦Next Wednesday. 6:30pm
![Page 3: Classes and Objects CS177 Rec 10. Announcements Project 4 is posted ◦ Milestone due on Nov. 12. ◦ Final submission due on Nov. 19. Exam 2 on Nov. 4 ◦](https://reader035.vdocument.in/reader035/viewer/2022062409/5697bfc51a28abf838ca6967/html5/thumbnails/3.jpg)
Questions?Questions?
![Page 4: Classes and Objects CS177 Rec 10. Announcements Project 4 is posted ◦ Milestone due on Nov. 12. ◦ Final submission due on Nov. 19. Exam 2 on Nov. 4 ◦](https://reader035.vdocument.in/reader035/viewer/2022062409/5697bfc51a28abf838ca6967/html5/thumbnails/4.jpg)
Data Types in JavaData Types in JavaPrimitive Types
◦int◦double◦boolean◦char
Object Types◦String◦Arrays, ex int[]◦You can create them!
![Page 5: Classes and Objects CS177 Rec 10. Announcements Project 4 is posted ◦ Milestone due on Nov. 12. ◦ Final submission due on Nov. 19. Exam 2 on Nov. 4 ◦](https://reader035.vdocument.in/reader035/viewer/2022062409/5697bfc51a28abf838ca6967/html5/thumbnails/5.jpg)
Reference vs. Primitive Reference vs. Primitive variablesvariablesVariables of primitive types hold
values◦int x = 25;
Variables of object types hold references◦int [] array = new int[3];
25x
array 0 0 0
![Page 6: Classes and Objects CS177 Rec 10. Announcements Project 4 is posted ◦ Milestone due on Nov. 12. ◦ Final submission due on Nov. 19. Exam 2 on Nov. 4 ◦](https://reader035.vdocument.in/reader035/viewer/2022062409/5697bfc51a28abf838ca6967/html5/thumbnails/6.jpg)
Sample class myClockSample class myClockpublic class myClock{
int hour;
int min;
int sec;
}Declare an object of type myClock
myClock clock;
Here, clock holds null. It points to nothing.Create the object
clock = new myClock();clock
0hour
0min
0sec
class
objectclass
Create memory space and assign to clock
X
![Page 7: Classes and Objects CS177 Rec 10. Announcements Project 4 is posted ◦ Milestone due on Nov. 12. ◦ Final submission due on Nov. 19. Exam 2 on Nov. 4 ◦](https://reader035.vdocument.in/reader035/viewer/2022062409/5697bfc51a28abf838ca6967/html5/thumbnails/7.jpg)
ExampleExamplemyClock clock1 = new myClock();myClock clock2 = clock1;
The address is copied. clock1.hour and clock2.hour
all refer to the same variable. clock1.hour = 3;
System.out.println(clock2.hour);//prints out 3!
clock1
0hour
0min
0secclock2
![Page 8: Classes and Objects CS177 Rec 10. Announcements Project 4 is posted ◦ Milestone due on Nov. 12. ◦ Final submission due on Nov. 19. Exam 2 on Nov. 4 ◦](https://reader035.vdocument.in/reader035/viewer/2022062409/5697bfc51a28abf838ca6967/html5/thumbnails/8.jpg)
““==“ and Comparison==“ and Comparison“==“ compares whatever is in the
variables.
int x = 25;int y = 25;System.out.println(x == y); //prints out “true”
myClock clock1 = new myClock();myClock clock2 = clock1;System.out.println(clock1 == clock2);//The two reference variables point to// the same address. Prints out “true”
25x 25y
clock1
0hour
0min
0secclock2
![Page 9: Classes and Objects CS177 Rec 10. Announcements Project 4 is posted ◦ Milestone due on Nov. 12. ◦ Final submission due on Nov. 19. Exam 2 on Nov. 4 ◦](https://reader035.vdocument.in/reader035/viewer/2022062409/5697bfc51a28abf838ca6967/html5/thumbnails/9.jpg)
““==“ and Comparison ==“ and Comparison cont.cont.“==“ compares whatever is in the
variables. myClock clock1 = new myClock();
myClock clock2 = new myClock();System.out.println(clock1 == clock2);// The two reference variables point to different addresses.// Prints out “false” although the two objects have the same content!
clock1
0hour
0min
0sec
clock2
0hour
0min
0sec
![Page 10: Classes and Objects CS177 Rec 10. Announcements Project 4 is posted ◦ Milestone due on Nov. 12. ◦ Final submission due on Nov. 19. Exam 2 on Nov. 4 ◦](https://reader035.vdocument.in/reader035/viewer/2022062409/5697bfc51a28abf838ca6967/html5/thumbnails/10.jpg)
““==“ and Comparison ==“ and Comparison cont.cont.Define a method to compare the
contents of two objects.public class myClock{
int hour;
int min;
int sec;
boolean equals(myClock c2){
if ( hour == c2.hour && min == c2.min && sec == c2.sec )
return true;
else return false;
}
}
![Page 11: Classes and Objects CS177 Rec 10. Announcements Project 4 is posted ◦ Milestone due on Nov. 12. ◦ Final submission due on Nov. 19. Exam 2 on Nov. 4 ◦](https://reader035.vdocument.in/reader035/viewer/2022062409/5697bfc51a28abf838ca6967/html5/thumbnails/11.jpg)
““==“ and Comparison ==“ and Comparison cont.cont.Now you can compare object
contents using that method. myClock clock1 = new myClock();
myClock clock2 = new myClock();System.out.println(clock1.equals(clock2));// Prints out “true” because the values are the same!
clock1
0hour
0min
0sec
clock2
0hour
0min
0sec
![Page 12: Classes and Objects CS177 Rec 10. Announcements Project 4 is posted ◦ Milestone due on Nov. 12. ◦ Final submission due on Nov. 19. Exam 2 on Nov. 4 ◦](https://reader035.vdocument.in/reader035/viewer/2022062409/5697bfc51a28abf838ca6967/html5/thumbnails/12.jpg)
ConstructorsConstructorsA Constructor is invoked when you create an
object using the keyword “new”You can use it to initialize member variables.public class myClock{
public myClock(int h, int m, int s){
hour = h; min = m; sec = s;
}
int hour;
int min;
int sec;
} Now you need to specify the values when you use
“new”myClock clock = new myClock(3, 30, 10);
clock 3hour
30min
10sec
![Page 13: Classes and Objects CS177 Rec 10. Announcements Project 4 is posted ◦ Milestone due on Nov. 12. ◦ Final submission due on Nov. 19. Exam 2 on Nov. 4 ◦](https://reader035.vdocument.in/reader035/viewer/2022062409/5697bfc51a28abf838ca6967/html5/thumbnails/13.jpg)
public class myClock{ public myClock(){ } public myClock(int h, int m, int s){ hour = h; min = m; sec = s; } int hour; int min; int sec;}
Constructors cont.Constructors cont.A default constructor is a constructor that
takes zero input arguments. It assigns default values for the variables or
simply does nothing If you do not specify your own constructor,
Java creates a default constructor for you.
default constructor
clock 0hour
0min
0sec
myClock clock = new myClock();
![Page 14: Classes and Objects CS177 Rec 10. Announcements Project 4 is posted ◦ Milestone due on Nov. 12. ◦ Final submission due on Nov. 19. Exam 2 on Nov. 4 ◦](https://reader035.vdocument.in/reader035/viewer/2022062409/5697bfc51a28abf838ca6967/html5/thumbnails/14.jpg)
public vs. privatepublic vs. privatePublic members are accessible to the
outside world.Private members are only accessible
inside the class itself.Usually we have public methods and
private variables
![Page 15: Classes and Objects CS177 Rec 10. Announcements Project 4 is posted ◦ Milestone due on Nov. 12. ◦ Final submission due on Nov. 19. Exam 2 on Nov. 4 ◦](https://reader035.vdocument.in/reader035/viewer/2022062409/5697bfc51a28abf838ca6967/html5/thumbnails/15.jpg)
public vs. private cont.public vs. private cont.public class myClock{ private int hour; private int min; private int sec; public myClock(int h, int m, int s){ hour = h; min = m; sec = s;} public myClock(){} public boolean equals(myClock c2){ if ( hour == c2.hour && min == c2.min && sec == c2.sec ) return true; else return false; }}
public class rec10{ public static void main(String [] strs){ myClock clock1 = new myClock(); myClock clock2 = new myClock(3, 30, 2); System.out.println(clock1.equals(clock2)); System.out.println(clock1.hour); }}
Compile error!
![Page 16: Classes and Objects CS177 Rec 10. Announcements Project 4 is posted ◦ Milestone due on Nov. 12. ◦ Final submission due on Nov. 19. Exam 2 on Nov. 4 ◦](https://reader035.vdocument.in/reader035/viewer/2022062409/5697bfc51a28abf838ca6967/html5/thumbnails/16.jpg)
Accessor methods – get Accessor methods – get valuesvaluespublic class myClock{
private int hour; private int min; private int sec; public myClock(int h, int m, int s){ hour = h; min = m; sec = s;} public myClock(){} public boolean equals(myClock c2){ if ( hour == c2.hour && min == c2.min && sec == c2.sec ) return true; else return false; } public int getHour(){ return hour; } public int getMin(){ return min; } public int getSec(){ return sec; }}
![Page 17: Classes and Objects CS177 Rec 10. Announcements Project 4 is posted ◦ Milestone due on Nov. 12. ◦ Final submission due on Nov. 19. Exam 2 on Nov. 4 ◦](https://reader035.vdocument.in/reader035/viewer/2022062409/5697bfc51a28abf838ca6967/html5/thumbnails/17.jpg)
Mutator methods – set Mutator methods – set valuesvaluespublic class myClock{ private int hour; private int min; private int sec; public myClock(int h, int m, int s){ hour = h; min = m; sec = s;} public myClock(){} public void print(){ System.out.println(hour + " " + min + " " + sec); } public boolean equals(myClock c2){ if ( hour == c2.hour && min == c2.min && sec == c2.sec ) return true; else return false; } public int getHour(){ return hour; } public int getMin(){ return min; } public int getSec(){ return sec; } public void setHour(int h){ hour = h; } public void setMin(int m){ if ( m >= 0 && m < 60 ) min = m; } public void setSec(int s){ if ( s >= 0 && s < 60 ) sec = s; }}
public void setHour(int h){ hour = h; } public void setMin(int m){ if ( m >= 0 && m < 60 ) min = m; } public void setSec(int s){ if ( s >= 0 && s < 60 ) sec = s; }
Validity checking is done to ensure that the change is allowable.
![Page 18: Classes and Objects CS177 Rec 10. Announcements Project 4 is posted ◦ Milestone due on Nov. 12. ◦ Final submission due on Nov. 19. Exam 2 on Nov. 4 ◦](https://reader035.vdocument.in/reader035/viewer/2022062409/5697bfc51a28abf838ca6967/html5/thumbnails/18.jpg)
public class myClock{ private int hour; private int min; private int sec; public myClock(int h, int m, int s){ setHour(h); setMin(m); setSec(s); } public myClock(){} public void print(){ System.out.println(hour + " " + min + " " + sec); } public boolean equals(myClock c2){ if ( hour == c2.hour && min == c2.min && sec == c2.sec ) return true; else return false; } public int getHour(){ return hour; } public int getMin(){ return min; } public int getSec(){ return sec; } public void setHour(int h){ hour = h; } public void setMin(int m){ if ( m >= 0 && m < 60 ) min = m; } public void setSec(int s){ if ( s >= 0 && s < 60 ) sec = s; }}
public myClock(int h, int m, int s){ setHour(h); setMin(m); setSec(s);}
Constructors set up the values, too.You can take advantage of the mutator methods to do that.
![Page 19: Classes and Objects CS177 Rec 10. Announcements Project 4 is posted ◦ Milestone due on Nov. 12. ◦ Final submission due on Nov. 19. Exam 2 on Nov. 4 ◦](https://reader035.vdocument.in/reader035/viewer/2022062409/5697bfc51a28abf838ca6967/html5/thumbnails/19.jpg)
Example of How to Use Example of How to Use myClockmyClockpublic class rec10{ public static void main(String [] strs){ myClock clock1 = new myClock(); myClock clock2 = new myClock(3, 30, 2); System.out.println(clock1.equals(clock2)); clock1.setHour(3); clock1.setMin(30); clock1.setSec(2); System.out.println(clock1.equals(clock2)); System.out.println("clock1 shows: " + clock1.getHour() + ":" + clock1.getMin() + ":" + clock1.getSec()); }} The program prints out:
falsetrueclock1 shows: 3:30:2
![Page 20: Classes and Objects CS177 Rec 10. Announcements Project 4 is posted ◦ Milestone due on Nov. 12. ◦ Final submission due on Nov. 19. Exam 2 on Nov. 4 ◦](https://reader035.vdocument.in/reader035/viewer/2022062409/5697bfc51a28abf838ca6967/html5/thumbnails/20.jpg)
Questions?Questions?