Java SE 8 Programming Basicscdn.cs50.net/2017/fall/seminars/java/java.pdf · Object-oriented...
Transcript of Java SE 8 Programming Basicscdn.cs50.net/2017/fall/seminars/java/java.pdf · Object-oriented...
![Page 1: Java SE 8 Programming Basicscdn.cs50.net/2017/fall/seminars/java/java.pdf · Object-oriented programming language Runs on Java Virtual Machine Java SE 8 released in 2014 Java SE 9](https://reader034.fdocuments.in/reader034/viewer/2022042221/5ec73ddff53792694008a24d/html5/thumbnails/1.jpg)
Java SE 8 Programming Basics
Bill Zhang
CS50 Seminar
![Page 2: Java SE 8 Programming Basicscdn.cs50.net/2017/fall/seminars/java/java.pdf · Object-oriented programming language Runs on Java Virtual Machine Java SE 8 released in 2014 Java SE 9](https://reader034.fdocuments.in/reader034/viewer/2022042221/5ec73ddff53792694008a24d/html5/thumbnails/2.jpg)
Background
● Released by Sun Microsystems in 1995● Object-oriented programming language● Runs on Java Virtual Machine● Java SE 8 released in 2014● Java SE 9 released in September, 2017
![Page 3: Java SE 8 Programming Basicscdn.cs50.net/2017/fall/seminars/java/java.pdf · Object-oriented programming language Runs on Java Virtual Machine Java SE 8 released in 2014 Java SE 9](https://reader034.fdocuments.in/reader034/viewer/2022042221/5ec73ddff53792694008a24d/html5/thumbnails/3.jpg)
Benefits of Java
● Object oriented○ Procedural (C) and Functional (Python)
● Encapsulation● Platform independent● Robust● Simple● Secure● It’s everywhere!
![Page 4: Java SE 8 Programming Basicscdn.cs50.net/2017/fall/seminars/java/java.pdf · Object-oriented programming language Runs on Java Virtual Machine Java SE 8 released in 2014 Java SE 9](https://reader034.fdocuments.in/reader034/viewer/2022042221/5ec73ddff53792694008a24d/html5/thumbnails/4.jpg)
Downsides of Java
;
![Page 5: Java SE 8 Programming Basicscdn.cs50.net/2017/fall/seminars/java/java.pdf · Object-oriented programming language Runs on Java Virtual Machine Java SE 8 released in 2014 Java SE 9](https://reader034.fdocuments.in/reader034/viewer/2022042221/5ec73ddff53792694008a24d/html5/thumbnails/5.jpg)
Roadmap
1. Basic Java Syntax2. Good Class Design3. Encapsulation
![Page 6: Java SE 8 Programming Basicscdn.cs50.net/2017/fall/seminars/java/java.pdf · Object-oriented programming language Runs on Java Virtual Machine Java SE 8 released in 2014 Java SE 9](https://reader034.fdocuments.in/reader034/viewer/2022042221/5ec73ddff53792694008a24d/html5/thumbnails/6.jpg)
Object-Oriented Programming
public class Animal { }
![Page 7: Java SE 8 Programming Basicscdn.cs50.net/2017/fall/seminars/java/java.pdf · Object-oriented programming language Runs on Java Virtual Machine Java SE 8 released in 2014 Java SE 9](https://reader034.fdocuments.in/reader034/viewer/2022042221/5ec73ddff53792694008a24d/html5/thumbnails/7.jpg)
Object-Oriented Programming
public class Animal {String name;
}
![Page 8: Java SE 8 Programming Basicscdn.cs50.net/2017/fall/seminars/java/java.pdf · Object-oriented programming language Runs on Java Virtual Machine Java SE 8 released in 2014 Java SE 9](https://reader034.fdocuments.in/reader034/viewer/2022042221/5ec73ddff53792694008a24d/html5/thumbnails/8.jpg)
Object-Oriented Programming
public class Animal {String name;
}
![Page 9: Java SE 8 Programming Basicscdn.cs50.net/2017/fall/seminars/java/java.pdf · Object-oriented programming language Runs on Java Virtual Machine Java SE 8 released in 2014 Java SE 9](https://reader034.fdocuments.in/reader034/viewer/2022042221/5ec73ddff53792694008a24d/html5/thumbnails/9.jpg)
Object-Oriented Programming
public class Animal {String name;
}
![Page 10: Java SE 8 Programming Basicscdn.cs50.net/2017/fall/seminars/java/java.pdf · Object-oriented programming language Runs on Java Virtual Machine Java SE 8 released in 2014 Java SE 9](https://reader034.fdocuments.in/reader034/viewer/2022042221/5ec73ddff53792694008a24d/html5/thumbnails/10.jpg)
Fields and Methods
public class Animal {String name;public String getName( ) {
return name;}
}
![Page 11: Java SE 8 Programming Basicscdn.cs50.net/2017/fall/seminars/java/java.pdf · Object-oriented programming language Runs on Java Virtual Machine Java SE 8 released in 2014 Java SE 9](https://reader034.fdocuments.in/reader034/viewer/2022042221/5ec73ddff53792694008a24d/html5/thumbnails/11.jpg)
Fields and Methods
public class Animal {String name;public String getName( ) {
return name;}
}
![Page 12: Java SE 8 Programming Basicscdn.cs50.net/2017/fall/seminars/java/java.pdf · Object-oriented programming language Runs on Java Virtual Machine Java SE 8 released in 2014 Java SE 9](https://reader034.fdocuments.in/reader034/viewer/2022042221/5ec73ddff53792694008a24d/html5/thumbnails/12.jpg)
Fields and Methods
public class Animal {String name;public String getName( ) {
return name;}
}
![Page 13: Java SE 8 Programming Basicscdn.cs50.net/2017/fall/seminars/java/java.pdf · Object-oriented programming language Runs on Java Virtual Machine Java SE 8 released in 2014 Java SE 9](https://reader034.fdocuments.in/reader034/viewer/2022042221/5ec73ddff53792694008a24d/html5/thumbnails/13.jpg)
Fields and Methods
public class Animal {String name;public String getName( ) {
return name;}
}
![Page 14: Java SE 8 Programming Basicscdn.cs50.net/2017/fall/seminars/java/java.pdf · Object-oriented programming language Runs on Java Virtual Machine Java SE 8 released in 2014 Java SE 9](https://reader034.fdocuments.in/reader034/viewer/2022042221/5ec73ddff53792694008a24d/html5/thumbnails/14.jpg)
Fields and Methods
public class Animal {String name;public String getName( ) {
return name;}public void setName(String newName) {
name = newName;}
}
![Page 15: Java SE 8 Programming Basicscdn.cs50.net/2017/fall/seminars/java/java.pdf · Object-oriented programming language Runs on Java Virtual Machine Java SE 8 released in 2014 Java SE 9](https://reader034.fdocuments.in/reader034/viewer/2022042221/5ec73ddff53792694008a24d/html5/thumbnails/15.jpg)
Fields and Methods
public class Animal {String name;public String getName( ) {
return name;}public void setName(String newName) {
name = newName;}
}
![Page 16: Java SE 8 Programming Basicscdn.cs50.net/2017/fall/seminars/java/java.pdf · Object-oriented programming language Runs on Java Virtual Machine Java SE 8 released in 2014 Java SE 9](https://reader034.fdocuments.in/reader034/viewer/2022042221/5ec73ddff53792694008a24d/html5/thumbnails/16.jpg)
Fields and Methods
public class Animal {String name;public String getName( ) {
return name;}public void setName(String newName) {
name = newName;}
}
![Page 17: Java SE 8 Programming Basicscdn.cs50.net/2017/fall/seminars/java/java.pdf · Object-oriented programming language Runs on Java Virtual Machine Java SE 8 released in 2014 Java SE 9](https://reader034.fdocuments.in/reader034/viewer/2022042221/5ec73ddff53792694008a24d/html5/thumbnails/17.jpg)
Fields and Methods
public class Animal {String name;public String getName( ) {
return name;}public void setName(String newName) {
name = newName;}
}
![Page 18: Java SE 8 Programming Basicscdn.cs50.net/2017/fall/seminars/java/java.pdf · Object-oriented programming language Runs on Java Virtual Machine Java SE 8 released in 2014 Java SE 9](https://reader034.fdocuments.in/reader034/viewer/2022042221/5ec73ddff53792694008a24d/html5/thumbnails/18.jpg)
Fields and Methods
public class Animal {String name;public String getName( ) {
return name;}public void setName(String newName) {
name = newName;}
}
![Page 19: Java SE 8 Programming Basicscdn.cs50.net/2017/fall/seminars/java/java.pdf · Object-oriented programming language Runs on Java Virtual Machine Java SE 8 released in 2014 Java SE 9](https://reader034.fdocuments.in/reader034/viewer/2022042221/5ec73ddff53792694008a24d/html5/thumbnails/19.jpg)
Classes and Files
public class Animal { }
![Page 20: Java SE 8 Programming Basicscdn.cs50.net/2017/fall/seminars/java/java.pdf · Object-oriented programming language Runs on Java Virtual Machine Java SE 8 released in 2014 Java SE 9](https://reader034.fdocuments.in/reader034/viewer/2022042221/5ec73ddff53792694008a24d/html5/thumbnails/20.jpg)
Classes and Files
public class Animal { }
![Page 21: Java SE 8 Programming Basicscdn.cs50.net/2017/fall/seminars/java/java.pdf · Object-oriented programming language Runs on Java Virtual Machine Java SE 8 released in 2014 Java SE 9](https://reader034.fdocuments.in/reader034/viewer/2022042221/5ec73ddff53792694008a24d/html5/thumbnails/21.jpg)
Classes and Files
public class Animal { }
![Page 22: Java SE 8 Programming Basicscdn.cs50.net/2017/fall/seminars/java/java.pdf · Object-oriented programming language Runs on Java Virtual Machine Java SE 8 released in 2014 Java SE 9](https://reader034.fdocuments.in/reader034/viewer/2022042221/5ec73ddff53792694008a24d/html5/thumbnails/22.jpg)
Classes and Files
public class Animal { }
$ javac Animal.java
$ java Animal
Will anything happen?
![Page 23: Java SE 8 Programming Basicscdn.cs50.net/2017/fall/seminars/java/java.pdf · Object-oriented programming language Runs on Java Virtual Machine Java SE 8 released in 2014 Java SE 9](https://reader034.fdocuments.in/reader034/viewer/2022042221/5ec73ddff53792694008a24d/html5/thumbnails/23.jpg)
The main() Method
public class Zoo {public static void main(String[ ] args) {
}}
![Page 24: Java SE 8 Programming Basicscdn.cs50.net/2017/fall/seminars/java/java.pdf · Object-oriented programming language Runs on Java Virtual Machine Java SE 8 released in 2014 Java SE 9](https://reader034.fdocuments.in/reader034/viewer/2022042221/5ec73ddff53792694008a24d/html5/thumbnails/24.jpg)
The main() Method
public class Zoo {public static void main(String[ ] args) {
}}
![Page 25: Java SE 8 Programming Basicscdn.cs50.net/2017/fall/seminars/java/java.pdf · Object-oriented programming language Runs on Java Virtual Machine Java SE 8 released in 2014 Java SE 9](https://reader034.fdocuments.in/reader034/viewer/2022042221/5ec73ddff53792694008a24d/html5/thumbnails/25.jpg)
The main() Method
public class Zoo {public static void main(String[ ] args) {
}}
![Page 26: Java SE 8 Programming Basicscdn.cs50.net/2017/fall/seminars/java/java.pdf · Object-oriented programming language Runs on Java Virtual Machine Java SE 8 released in 2014 Java SE 9](https://reader034.fdocuments.in/reader034/viewer/2022042221/5ec73ddff53792694008a24d/html5/thumbnails/26.jpg)
The main() Method
public class Zoo {public static void main(String[ ] args) {
}}
![Page 27: Java SE 8 Programming Basicscdn.cs50.net/2017/fall/seminars/java/java.pdf · Object-oriented programming language Runs on Java Virtual Machine Java SE 8 released in 2014 Java SE 9](https://reader034.fdocuments.in/reader034/viewer/2022042221/5ec73ddff53792694008a24d/html5/thumbnails/27.jpg)
The main() Method
public class Zoo {public static void main(String[ ] args) {
System.out.println(args[0]);System.out.println(args[1]);
}}
![Page 28: Java SE 8 Programming Basicscdn.cs50.net/2017/fall/seminars/java/java.pdf · Object-oriented programming language Runs on Java Virtual Machine Java SE 8 released in 2014 Java SE 9](https://reader034.fdocuments.in/reader034/viewer/2022042221/5ec73ddff53792694008a24d/html5/thumbnails/28.jpg)
The main() Method
public class Zoo {public static void main(String[ ] args) {
System.out.println(args[0]);System.out.println(args[1]);
}}
![Page 29: Java SE 8 Programming Basicscdn.cs50.net/2017/fall/seminars/java/java.pdf · Object-oriented programming language Runs on Java Virtual Machine Java SE 8 released in 2014 Java SE 9](https://reader034.fdocuments.in/reader034/viewer/2022042221/5ec73ddff53792694008a24d/html5/thumbnails/29.jpg)
The main() Method
public class Zoo {public static void main(String[ ] args) {
System.out.println(args[0]);System.out.println(args[1]);
}}
![Page 30: Java SE 8 Programming Basicscdn.cs50.net/2017/fall/seminars/java/java.pdf · Object-oriented programming language Runs on Java Virtual Machine Java SE 8 released in 2014 Java SE 9](https://reader034.fdocuments.in/reader034/viewer/2022042221/5ec73ddff53792694008a24d/html5/thumbnails/30.jpg)
The main() Method
public class Zoo {public static void main(String[ ] args) {
System.out.println(args[0]);System.out.println(args[1]);
}}
![Page 31: Java SE 8 Programming Basicscdn.cs50.net/2017/fall/seminars/java/java.pdf · Object-oriented programming language Runs on Java Virtual Machine Java SE 8 released in 2014 Java SE 9](https://reader034.fdocuments.in/reader034/viewer/2022042221/5ec73ddff53792694008a24d/html5/thumbnails/31.jpg)
The main() Method
$ javac Zoo.java
$ java Zoo Bronx Zoo
BronxZoo
![Page 32: Java SE 8 Programming Basicscdn.cs50.net/2017/fall/seminars/java/java.pdf · Object-oriented programming language Runs on Java Virtual Machine Java SE 8 released in 2014 Java SE 9](https://reader034.fdocuments.in/reader034/viewer/2022042221/5ec73ddff53792694008a24d/html5/thumbnails/32.jpg)
The main() Method
$ javac Zoo.java
$ java Zoo “San Diego” Zoo
San DiegoZoo
![Page 33: Java SE 8 Programming Basicscdn.cs50.net/2017/fall/seminars/java/java.pdf · Object-oriented programming language Runs on Java Virtual Machine Java SE 8 released in 2014 Java SE 9](https://reader034.fdocuments.in/reader034/viewer/2022042221/5ec73ddff53792694008a24d/html5/thumbnails/33.jpg)
The main() Method
$ javac Zoo.java
$ java Zoo.java Zoo
ZooException in thread "main"java.lang.ArrayIndexOutOfBoundsException: 1at mainmethod.Zoo.main(Zoo.java:7)
![Page 34: Java SE 8 Programming Basicscdn.cs50.net/2017/fall/seminars/java/java.pdf · Object-oriented programming language Runs on Java Virtual Machine Java SE 8 released in 2014 Java SE 9](https://reader034.fdocuments.in/reader034/viewer/2022042221/5ec73ddff53792694008a24d/html5/thumbnails/34.jpg)
Primitives and Objects
String name = new String(“Bill Zhang”);
![Page 35: Java SE 8 Programming Basicscdn.cs50.net/2017/fall/seminars/java/java.pdf · Object-oriented programming language Runs on Java Virtual Machine Java SE 8 released in 2014 Java SE 9](https://reader034.fdocuments.in/reader034/viewer/2022042221/5ec73ddff53792694008a24d/html5/thumbnails/35.jpg)
Primitives and Objects
String name = new String(“Bill Zhang”);
![Page 36: Java SE 8 Programming Basicscdn.cs50.net/2017/fall/seminars/java/java.pdf · Object-oriented programming language Runs on Java Virtual Machine Java SE 8 released in 2014 Java SE 9](https://reader034.fdocuments.in/reader034/viewer/2022042221/5ec73ddff53792694008a24d/html5/thumbnails/36.jpg)
Primitives and Objects
String name = new String(“Bill Zhang”);
![Page 37: Java SE 8 Programming Basicscdn.cs50.net/2017/fall/seminars/java/java.pdf · Object-oriented programming language Runs on Java Virtual Machine Java SE 8 released in 2014 Java SE 9](https://reader034.fdocuments.in/reader034/viewer/2022042221/5ec73ddff53792694008a24d/html5/thumbnails/37.jpg)
Primitives and Objects
String name = new String(“Bill Zhang”);
![Page 38: Java SE 8 Programming Basicscdn.cs50.net/2017/fall/seminars/java/java.pdf · Object-oriented programming language Runs on Java Virtual Machine Java SE 8 released in 2014 Java SE 9](https://reader034.fdocuments.in/reader034/viewer/2022042221/5ec73ddff53792694008a24d/html5/thumbnails/38.jpg)
Primitives and Objects
String name = new String(“Bill Zhang”);
![Page 39: Java SE 8 Programming Basicscdn.cs50.net/2017/fall/seminars/java/java.pdf · Object-oriented programming language Runs on Java Virtual Machine Java SE 8 released in 2014 Java SE 9](https://reader034.fdocuments.in/reader034/viewer/2022042221/5ec73ddff53792694008a24d/html5/thumbnails/39.jpg)
Primitives and Objects
int number = 5;
![Page 40: Java SE 8 Programming Basicscdn.cs50.net/2017/fall/seminars/java/java.pdf · Object-oriented programming language Runs on Java Virtual Machine Java SE 8 released in 2014 Java SE 9](https://reader034.fdocuments.in/reader034/viewer/2022042221/5ec73ddff53792694008a24d/html5/thumbnails/40.jpg)
Primitives and Objects
int number = 5;
![Page 41: Java SE 8 Programming Basicscdn.cs50.net/2017/fall/seminars/java/java.pdf · Object-oriented programming language Runs on Java Virtual Machine Java SE 8 released in 2014 Java SE 9](https://reader034.fdocuments.in/reader034/viewer/2022042221/5ec73ddff53792694008a24d/html5/thumbnails/41.jpg)
Primitives and Objects
int number = 5;
![Page 42: Java SE 8 Programming Basicscdn.cs50.net/2017/fall/seminars/java/java.pdf · Object-oriented programming language Runs on Java Virtual Machine Java SE 8 released in 2014 Java SE 9](https://reader034.fdocuments.in/reader034/viewer/2022042221/5ec73ddff53792694008a24d/html5/thumbnails/42.jpg)
Primitives and Objects
int number = 5;
![Page 43: Java SE 8 Programming Basicscdn.cs50.net/2017/fall/seminars/java/java.pdf · Object-oriented programming language Runs on Java Virtual Machine Java SE 8 released in 2014 Java SE 9](https://reader034.fdocuments.in/reader034/viewer/2022042221/5ec73ddff53792694008a24d/html5/thumbnails/43.jpg)
Primitives and Objects
boolean byteshortintlongfloatdoublechar
true or false 8-bit integral value16-bit integral value32-bit integral value64-bit integral value32-bit floating point value64-bit floating point value16-bit Unicode value
true123123123123123.45f123.45‘a’
![Page 44: Java SE 8 Programming Basicscdn.cs50.net/2017/fall/seminars/java/java.pdf · Object-oriented programming language Runs on Java Virtual Machine Java SE 8 released in 2014 Java SE 9](https://reader034.fdocuments.in/reader034/viewer/2022042221/5ec73ddff53792694008a24d/html5/thumbnails/44.jpg)
Constructors
public class Chick {private String name = "Fluffy";public Chick() {
name = "Tiny";}public static void main(String[ ] args) {
Chick chick = new Chick();System.out.println(chick.name); } }
![Page 45: Java SE 8 Programming Basicscdn.cs50.net/2017/fall/seminars/java/java.pdf · Object-oriented programming language Runs on Java Virtual Machine Java SE 8 released in 2014 Java SE 9](https://reader034.fdocuments.in/reader034/viewer/2022042221/5ec73ddff53792694008a24d/html5/thumbnails/45.jpg)
Constructors
public class Chick {private String name = "Fluffy";public Chick() {
name = "Tiny";}public static void main(String[ ] args) {
Chick chick = new Chick();System.out.println(chick.name); } }
![Page 46: Java SE 8 Programming Basicscdn.cs50.net/2017/fall/seminars/java/java.pdf · Object-oriented programming language Runs on Java Virtual Machine Java SE 8 released in 2014 Java SE 9](https://reader034.fdocuments.in/reader034/viewer/2022042221/5ec73ddff53792694008a24d/html5/thumbnails/46.jpg)
Constructors
public class Chick {private String name = "Fluffy";public Chick() {
name = "Tiny";}public static void main(String[ ] args) {
Chick chick = new Chick();System.out.println(chick.name); } }
![Page 47: Java SE 8 Programming Basicscdn.cs50.net/2017/fall/seminars/java/java.pdf · Object-oriented programming language Runs on Java Virtual Machine Java SE 8 released in 2014 Java SE 9](https://reader034.fdocuments.in/reader034/viewer/2022042221/5ec73ddff53792694008a24d/html5/thumbnails/47.jpg)
Constructors
public class Chick {private String name = "Fluffy";public Chick() {
name = "Tiny";}public static void main(String[ ] args) {
Chick chick = new Chick();System.out.println(chick.name); } }
![Page 48: Java SE 8 Programming Basicscdn.cs50.net/2017/fall/seminars/java/java.pdf · Object-oriented programming language Runs on Java Virtual Machine Java SE 8 released in 2014 Java SE 9](https://reader034.fdocuments.in/reader034/viewer/2022042221/5ec73ddff53792694008a24d/html5/thumbnails/48.jpg)
Constructors
public class Chick {private String name = "Fluffy";public Chick() {
name = "Tiny";}public static void main(String[ ] args) {
Chick chick = new Chick();System.out.println(chick.name); } }
![Page 49: Java SE 8 Programming Basicscdn.cs50.net/2017/fall/seminars/java/java.pdf · Object-oriented programming language Runs on Java Virtual Machine Java SE 8 released in 2014 Java SE 9](https://reader034.fdocuments.in/reader034/viewer/2022042221/5ec73ddff53792694008a24d/html5/thumbnails/49.jpg)
Constructors
public class Chick {private String name = "Fluffy";public Chick() {
name = "Tiny";}public static void main(String[ ] args) {
Chick chick = new Chick();System.out.println(chick.name); } }
![Page 50: Java SE 8 Programming Basicscdn.cs50.net/2017/fall/seminars/java/java.pdf · Object-oriented programming language Runs on Java Virtual Machine Java SE 8 released in 2014 Java SE 9](https://reader034.fdocuments.in/reader034/viewer/2022042221/5ec73ddff53792694008a24d/html5/thumbnails/50.jpg)
Constructors
public class Chick {private String name = "Fluffy";public Chick() {
name = "Tiny";}public static void main(String[ ] args) {
Chick chick = new Chick();System.out.println(chick.name); } }
![Page 51: Java SE 8 Programming Basicscdn.cs50.net/2017/fall/seminars/java/java.pdf · Object-oriented programming language Runs on Java Virtual Machine Java SE 8 released in 2014 Java SE 9](https://reader034.fdocuments.in/reader034/viewer/2022042221/5ec73ddff53792694008a24d/html5/thumbnails/51.jpg)
Constructors
$ javac Chick.java
$ java Chick
What will this print?
Tiny
![Page 52: Java SE 8 Programming Basicscdn.cs50.net/2017/fall/seminars/java/java.pdf · Object-oriented programming language Runs on Java Virtual Machine Java SE 8 released in 2014 Java SE 9](https://reader034.fdocuments.in/reader034/viewer/2022042221/5ec73ddff53792694008a24d/html5/thumbnails/52.jpg)
Constructorspublic class Chick {
private String name = "Fluffy";public Chick() {
name = "Tiny";}public Chick(String name) {
this.name = name;}public static void main(String[ ] args) {
Chick chick = new Chick(“Cutie”);System.out.println(chick.name); } }
![Page 53: Java SE 8 Programming Basicscdn.cs50.net/2017/fall/seminars/java/java.pdf · Object-oriented programming language Runs on Java Virtual Machine Java SE 8 released in 2014 Java SE 9](https://reader034.fdocuments.in/reader034/viewer/2022042221/5ec73ddff53792694008a24d/html5/thumbnails/53.jpg)
Constructorspublic class Chick {
private String name = "Fluffy";public Chick() {
name = "Tiny";}public Chick(String name) {
this.name = name;}public static void main(String[ ] args) {
Chick chick = new Chick(“Cutie”);System.out.println(chick.name); } }
![Page 54: Java SE 8 Programming Basicscdn.cs50.net/2017/fall/seminars/java/java.pdf · Object-oriented programming language Runs on Java Virtual Machine Java SE 8 released in 2014 Java SE 9](https://reader034.fdocuments.in/reader034/viewer/2022042221/5ec73ddff53792694008a24d/html5/thumbnails/54.jpg)
Constructorspublic class Chick {
private String name = "Fluffy";public Chick() {
name = "Tiny";}public Chick(String name) {
this.name = name;}public static void main(String[ ] args) {
Chick chick = new Chick(“Cutie”);System.out.println(chick.name); } }
![Page 55: Java SE 8 Programming Basicscdn.cs50.net/2017/fall/seminars/java/java.pdf · Object-oriented programming language Runs on Java Virtual Machine Java SE 8 released in 2014 Java SE 9](https://reader034.fdocuments.in/reader034/viewer/2022042221/5ec73ddff53792694008a24d/html5/thumbnails/55.jpg)
Constructorspublic class Chick {
private String name = "Fluffy";public Chick() {
name = "Tiny";}public Chick(String name) {
this.name = name;}public static void main(String[ ] args) {
Chick chick = new Chick(“Cutie”);System.out.println(chick.name); } }
![Page 56: Java SE 8 Programming Basicscdn.cs50.net/2017/fall/seminars/java/java.pdf · Object-oriented programming language Runs on Java Virtual Machine Java SE 8 released in 2014 Java SE 9](https://reader034.fdocuments.in/reader034/viewer/2022042221/5ec73ddff53792694008a24d/html5/thumbnails/56.jpg)
Constructors
$ javac Chick.java
$ java Chick
What will this print?
Cutie
![Page 57: Java SE 8 Programming Basicscdn.cs50.net/2017/fall/seminars/java/java.pdf · Object-oriented programming language Runs on Java Virtual Machine Java SE 8 released in 2014 Java SE 9](https://reader034.fdocuments.in/reader034/viewer/2022042221/5ec73ddff53792694008a24d/html5/thumbnails/57.jpg)
Declarations and Initializations
public class Chick {private String name = "Fluffy";public Chick() {
name = "Tiny";}public static void main(String[ ] args) {
Chick chick = new Chick();System.out.println(chick.name); } }
![Page 58: Java SE 8 Programming Basicscdn.cs50.net/2017/fall/seminars/java/java.pdf · Object-oriented programming language Runs on Java Virtual Machine Java SE 8 released in 2014 Java SE 9](https://reader034.fdocuments.in/reader034/viewer/2022042221/5ec73ddff53792694008a24d/html5/thumbnails/58.jpg)
Declarations and Initializations
public class Chick {private String name = "Fluffy";public Chick() {
name = "Tiny";}public static void main(String[ ] args) {
Chick chick = new Chick();System.out.println(chick.name); } }
![Page 59: Java SE 8 Programming Basicscdn.cs50.net/2017/fall/seminars/java/java.pdf · Object-oriented programming language Runs on Java Virtual Machine Java SE 8 released in 2014 Java SE 9](https://reader034.fdocuments.in/reader034/viewer/2022042221/5ec73ddff53792694008a24d/html5/thumbnails/59.jpg)
Java Statements
if-then Statementif-then-else Statementwhile Statementdo-while Statementfor Statement
![Page 60: Java SE 8 Programming Basicscdn.cs50.net/2017/fall/seminars/java/java.pdf · Object-oriented programming language Runs on Java Virtual Machine Java SE 8 released in 2014 Java SE 9](https://reader034.fdocuments.in/reader034/viewer/2022042221/5ec73ddff53792694008a24d/html5/thumbnails/60.jpg)
Java Statements
if (name == NULL) {System.out.println(“empty”);
}
for (int i = 0; i < 10; i++) {System.out.println( i );
}
![Page 61: Java SE 8 Programming Basicscdn.cs50.net/2017/fall/seminars/java/java.pdf · Object-oriented programming language Runs on Java Virtual Machine Java SE 8 released in 2014 Java SE 9](https://reader034.fdocuments.in/reader034/viewer/2022042221/5ec73ddff53792694008a24d/html5/thumbnails/61.jpg)
Class Design
![Page 62: Java SE 8 Programming Basicscdn.cs50.net/2017/fall/seminars/java/java.pdf · Object-oriented programming language Runs on Java Virtual Machine Java SE 8 released in 2014 Java SE 9](https://reader034.fdocuments.in/reader034/viewer/2022042221/5ec73ddff53792694008a24d/html5/thumbnails/62.jpg)
public class Animal {private int age;public int getAge() {
return age;}
}
public class Tiger {private int age;public int getAge() {
return age;}public void roar() {
System.out.println(“roar”);}
}
![Page 63: Java SE 8 Programming Basicscdn.cs50.net/2017/fall/seminars/java/java.pdf · Object-oriented programming language Runs on Java Virtual Machine Java SE 8 released in 2014 Java SE 9](https://reader034.fdocuments.in/reader034/viewer/2022042221/5ec73ddff53792694008a24d/html5/thumbnails/63.jpg)
public class Animal {private int age;public int getAge() {
return age;}
}
public class Tiger {private int age;public int getAge() {
return age;}public void roar() {
System.out.println(“roar”)}
}
![Page 64: Java SE 8 Programming Basicscdn.cs50.net/2017/fall/seminars/java/java.pdf · Object-oriented programming language Runs on Java Virtual Machine Java SE 8 released in 2014 Java SE 9](https://reader034.fdocuments.in/reader034/viewer/2022042221/5ec73ddff53792694008a24d/html5/thumbnails/64.jpg)
Class Inheritance
● Single inheritance
![Page 65: Java SE 8 Programming Basicscdn.cs50.net/2017/fall/seminars/java/java.pdf · Object-oriented programming language Runs on Java Virtual Machine Java SE 8 released in 2014 Java SE 9](https://reader034.fdocuments.in/reader034/viewer/2022042221/5ec73ddff53792694008a24d/html5/thumbnails/65.jpg)
public class Animal {private int age;public int getAge() {
return age;}
}
public class Tiger extends Animal {public void roar() {
System.out.println(“roar”);}
}
![Page 66: Java SE 8 Programming Basicscdn.cs50.net/2017/fall/seminars/java/java.pdf · Object-oriented programming language Runs on Java Virtual Machine Java SE 8 released in 2014 Java SE 9](https://reader034.fdocuments.in/reader034/viewer/2022042221/5ec73ddff53792694008a24d/html5/thumbnails/66.jpg)
public class Animal {private int age;public int getAge() {
return age;}
}
public class Tiger extends Animal {public void roar() {
System.out.println(“roar”);}
}
![Page 67: Java SE 8 Programming Basicscdn.cs50.net/2017/fall/seminars/java/java.pdf · Object-oriented programming language Runs on Java Virtual Machine Java SE 8 released in 2014 Java SE 9](https://reader034.fdocuments.in/reader034/viewer/2022042221/5ec73ddff53792694008a24d/html5/thumbnails/67.jpg)
public class Animal {private int age;public int getAge() {
return age;}
}
public class Tiger extends Animal {public void roar() {
System.out.println(“roar”);}
public void age() {int tigerAge = getAge();System.out.println(tigerAge);
}}
![Page 68: Java SE 8 Programming Basicscdn.cs50.net/2017/fall/seminars/java/java.pdf · Object-oriented programming language Runs on Java Virtual Machine Java SE 8 released in 2014 Java SE 9](https://reader034.fdocuments.in/reader034/viewer/2022042221/5ec73ddff53792694008a24d/html5/thumbnails/68.jpg)
public class Animal {private int age;public int getAge() {
return age;}
}
public class Tiger extends Animal {public void roar() {
System.out.println(“roar”);}
public void age() {int tigerAge = getAge();System.out.println(tigerAge);
}}
![Page 69: Java SE 8 Programming Basicscdn.cs50.net/2017/fall/seminars/java/java.pdf · Object-oriented programming language Runs on Java Virtual Machine Java SE 8 released in 2014 Java SE 9](https://reader034.fdocuments.in/reader034/viewer/2022042221/5ec73ddff53792694008a24d/html5/thumbnails/69.jpg)
public class Animal {private int age;private String name;public Animal(int age, String name) {
super();this.age = age;this.name = name;
}public Animal(int age) {
this.age = age;this.name = null;
}}
public class Gorilla extends Animal {public Gorilla(int age) {
super(age,"Gorilla");}public Gorilla() {
super(5);}
}
![Page 70: Java SE 8 Programming Basicscdn.cs50.net/2017/fall/seminars/java/java.pdf · Object-oriented programming language Runs on Java Virtual Machine Java SE 8 released in 2014 Java SE 9](https://reader034.fdocuments.in/reader034/viewer/2022042221/5ec73ddff53792694008a24d/html5/thumbnails/70.jpg)
public class Animal {private int age;private String name;public Animal(int age, String name) {
super();this.age = age;this.name = name;
}public Animal(int age) {
this.age = age;this.name = null;
}}
public class Gorilla extends Animal {public Gorilla(int age) {
super(age,"Gorilla");}public Gorilla() {
super(5);}
}
![Page 71: Java SE 8 Programming Basicscdn.cs50.net/2017/fall/seminars/java/java.pdf · Object-oriented programming language Runs on Java Virtual Machine Java SE 8 released in 2014 Java SE 9](https://reader034.fdocuments.in/reader034/viewer/2022042221/5ec73ddff53792694008a24d/html5/thumbnails/71.jpg)
public class Animal {private int age;private String name;public Animal(int age, String name) {
super();this.age = age;this.name = name;
}public Animal(int age) {
this.age = age;this.name = null;
}}
public class Gorilla extends Animal {public Gorilla(int age) {
super(age,"Gorilla");}public Gorilla() {
super(5);}
}
![Page 72: Java SE 8 Programming Basicscdn.cs50.net/2017/fall/seminars/java/java.pdf · Object-oriented programming language Runs on Java Virtual Machine Java SE 8 released in 2014 Java SE 9](https://reader034.fdocuments.in/reader034/viewer/2022042221/5ec73ddff53792694008a24d/html5/thumbnails/72.jpg)
public class Animal {private int age;private String name;public Animal(int age, String name) {
super();this.age = age;this.name = name;
}public Animal(int age) {
this.age = age;this.name = null;
}}
public class Gorilla extends Animal {public Gorilla(int age) {
super(age,"Gorilla");}public Gorilla() {
super(5);}
}
![Page 73: Java SE 8 Programming Basicscdn.cs50.net/2017/fall/seminars/java/java.pdf · Object-oriented programming language Runs on Java Virtual Machine Java SE 8 released in 2014 Java SE 9](https://reader034.fdocuments.in/reader034/viewer/2022042221/5ec73ddff53792694008a24d/html5/thumbnails/73.jpg)
public class Animal {private int age;private String name;public Animal(int age, String name) {
super();this.age = age;this.name = name;
}public Animal(int age) {
this.age = age;this.name = null;
}}
public class Gorilla extends Animal {public Gorilla(int age) {
super(age,"Gorilla");}public Gorilla() {
super(5);}
}
![Page 74: Java SE 8 Programming Basicscdn.cs50.net/2017/fall/seminars/java/java.pdf · Object-oriented programming language Runs on Java Virtual Machine Java SE 8 released in 2014 Java SE 9](https://reader034.fdocuments.in/reader034/viewer/2022042221/5ec73ddff53792694008a24d/html5/thumbnails/74.jpg)
Abstract Classes
![Page 75: Java SE 8 Programming Basicscdn.cs50.net/2017/fall/seminars/java/java.pdf · Object-oriented programming language Runs on Java Virtual Machine Java SE 8 released in 2014 Java SE 9](https://reader034.fdocuments.in/reader034/viewer/2022042221/5ec73ddff53792694008a24d/html5/thumbnails/75.jpg)
public abstract class Animal {protected int age;public void eat() {
System.out.println("Animal is eating");}public abstract String getName();
}
public class Swan extends Animal {public String getName() {
return "Swan";}
}
![Page 76: Java SE 8 Programming Basicscdn.cs50.net/2017/fall/seminars/java/java.pdf · Object-oriented programming language Runs on Java Virtual Machine Java SE 8 released in 2014 Java SE 9](https://reader034.fdocuments.in/reader034/viewer/2022042221/5ec73ddff53792694008a24d/html5/thumbnails/76.jpg)
public abstract class Animal {protected int age;public void eat() {
System.out.println("Animal is eating");}public abstract String getName();
}
public class Swan extends Animal {public String getName() {
return "Swan";}
}
![Page 77: Java SE 8 Programming Basicscdn.cs50.net/2017/fall/seminars/java/java.pdf · Object-oriented programming language Runs on Java Virtual Machine Java SE 8 released in 2014 Java SE 9](https://reader034.fdocuments.in/reader034/viewer/2022042221/5ec73ddff53792694008a24d/html5/thumbnails/77.jpg)
public abstract class Animal {protected int age;public void eat() {
System.out.println("Animal is eating");}public abstract String getName();
}
public class Swan extends Animal {public String getName() {
return "Swan";}
}
![Page 78: Java SE 8 Programming Basicscdn.cs50.net/2017/fall/seminars/java/java.pdf · Object-oriented programming language Runs on Java Virtual Machine Java SE 8 released in 2014 Java SE 9](https://reader034.fdocuments.in/reader034/viewer/2022042221/5ec73ddff53792694008a24d/html5/thumbnails/78.jpg)
public abstract class Animal {protected int age;public void eat() {
System.out.println("Animal is eating");}public abstract String getName();
}
public class Swan extends Animal {public String getName() {
return "Swan";}
}
![Page 79: Java SE 8 Programming Basicscdn.cs50.net/2017/fall/seminars/java/java.pdf · Object-oriented programming language Runs on Java Virtual Machine Java SE 8 released in 2014 Java SE 9](https://reader034.fdocuments.in/reader034/viewer/2022042221/5ec73ddff53792694008a24d/html5/thumbnails/79.jpg)
public abstract class Animal {protected int age;public void eat() {
System.out.println("Animal is eating");}public abstract String getName();
}
public class Swan extends Animal {public int getAge() {
return age;}
}
![Page 80: Java SE 8 Programming Basicscdn.cs50.net/2017/fall/seminars/java/java.pdf · Object-oriented programming language Runs on Java Virtual Machine Java SE 8 released in 2014 Java SE 9](https://reader034.fdocuments.in/reader034/viewer/2022042221/5ec73ddff53792694008a24d/html5/thumbnails/80.jpg)
public abstract class Animal {protected int age;public void eat() {
System.out.println("Animal is eating");}public abstract String getName();
}
public class Swan extends Animal {public int getAge() {
return age;}
}
![Page 81: Java SE 8 Programming Basicscdn.cs50.net/2017/fall/seminars/java/java.pdf · Object-oriented programming language Runs on Java Virtual Machine Java SE 8 released in 2014 Java SE 9](https://reader034.fdocuments.in/reader034/viewer/2022042221/5ec73ddff53792694008a24d/html5/thumbnails/81.jpg)
public abstract class Animal {protected int age;public void eat() {
System.out.println("Animal is eating");}public abstract String getName();
}
public abstract class Swan extends Animal {public int getAge() {
return age;}
}
![Page 82: Java SE 8 Programming Basicscdn.cs50.net/2017/fall/seminars/java/java.pdf · Object-oriented programming language Runs on Java Virtual Machine Java SE 8 released in 2014 Java SE 9](https://reader034.fdocuments.in/reader034/viewer/2022042221/5ec73ddff53792694008a24d/html5/thumbnails/82.jpg)
Interfaces
● Multiple inheritance
![Page 83: Java SE 8 Programming Basicscdn.cs50.net/2017/fall/seminars/java/java.pdf · Object-oriented programming language Runs on Java Virtual Machine Java SE 8 released in 2014 Java SE 9](https://reader034.fdocuments.in/reader034/viewer/2022042221/5ec73ddff53792694008a24d/html5/thumbnails/83.jpg)
public interface HasTail {public abstract int getTailLength();
}
public class Mouse implements HasTail {public int tailLength = 5;public Mouse(int tailLength) {
this.tailLength = tailLength}public int getTailLength() {
return tailLength;}
}
![Page 84: Java SE 8 Programming Basicscdn.cs50.net/2017/fall/seminars/java/java.pdf · Object-oriented programming language Runs on Java Virtual Machine Java SE 8 released in 2014 Java SE 9](https://reader034.fdocuments.in/reader034/viewer/2022042221/5ec73ddff53792694008a24d/html5/thumbnails/84.jpg)
public interface HasTail {public abstract int getTailLength();
}
public class Mouse implements HasTail {public int tailLength = 5;public Mouse(int tailLength) {
this.tailLength = tailLength}public int getTailLength() {
return tailLength;}
}
![Page 85: Java SE 8 Programming Basicscdn.cs50.net/2017/fall/seminars/java/java.pdf · Object-oriented programming language Runs on Java Virtual Machine Java SE 8 released in 2014 Java SE 9](https://reader034.fdocuments.in/reader034/viewer/2022042221/5ec73ddff53792694008a24d/html5/thumbnails/85.jpg)
public interface HasTail {public abstract int getTailLength();
}
public class Mouse implements HasTail {public int tailLength = 5;public Mouse(int tailLength) {
this.tailLength = tailLength}public int getTailLength() {
return tailLength;}
}
![Page 86: Java SE 8 Programming Basicscdn.cs50.net/2017/fall/seminars/java/java.pdf · Object-oriented programming language Runs on Java Virtual Machine Java SE 8 released in 2014 Java SE 9](https://reader034.fdocuments.in/reader034/viewer/2022042221/5ec73ddff53792694008a24d/html5/thumbnails/86.jpg)
public interface HasTail {public abstract int getTailLength();
}
public class Mouse implements HasTail {public int tailLength = 5;public Mouse(int tailLength) {
this.tailLength = tailLength}public int getTailLength() {
return tailLength;}
}
![Page 87: Java SE 8 Programming Basicscdn.cs50.net/2017/fall/seminars/java/java.pdf · Object-oriented programming language Runs on Java Virtual Machine Java SE 8 released in 2014 Java SE 9](https://reader034.fdocuments.in/reader034/viewer/2022042221/5ec73ddff53792694008a24d/html5/thumbnails/87.jpg)
public interface HasTail {public abstract int getTailLength();
}public interface HasWhiskers {
public int getNumberOfWhiskers();}public class Mouse implements HasTail, HasWhiskers {
public int tailLength = 5;public Mouse(int tailLength) {
this.tailLength = tailLength}public int getTailLength() {
return tailLength;}
}
![Page 88: Java SE 8 Programming Basicscdn.cs50.net/2017/fall/seminars/java/java.pdf · Object-oriented programming language Runs on Java Virtual Machine Java SE 8 released in 2014 Java SE 9](https://reader034.fdocuments.in/reader034/viewer/2022042221/5ec73ddff53792694008a24d/html5/thumbnails/88.jpg)
public interface HasTail {public abstract int getTailLength();
}public interface HasWhiskers {
public int getNumberOfWhiskers();}public class Mouse implements HasTail, HasWhiskers {
public int tailLength = 5;public Mouse(int tailLength) {
this.tailLength = tailLength}public int getTailLength() {
return tailLength;}
}
![Page 89: Java SE 8 Programming Basicscdn.cs50.net/2017/fall/seminars/java/java.pdf · Object-oriented programming language Runs on Java Virtual Machine Java SE 8 released in 2014 Java SE 9](https://reader034.fdocuments.in/reader034/viewer/2022042221/5ec73ddff53792694008a24d/html5/thumbnails/89.jpg)
public interface HasTail {public abstract int getTailLength();
}public interface HasWhiskers {
public int getNumberOfWhiskers();}public class Mouse implements HasTail, HasWhiskers {
public int tailLength = 5;public Mouse(int tailLength) {
this.tailLength = tailLength}public int getTailLength() {
return tailLength;}
}
![Page 90: Java SE 8 Programming Basicscdn.cs50.net/2017/fall/seminars/java/java.pdf · Object-oriented programming language Runs on Java Virtual Machine Java SE 8 released in 2014 Java SE 9](https://reader034.fdocuments.in/reader034/viewer/2022042221/5ec73ddff53792694008a24d/html5/thumbnails/90.jpg)
public interface HasTail {public abstract int getTailLength();
}public interface HasWhiskers {
public int getNumberOfWhiskers();}public class Mouse implements HasTail, HasWhiskers {
public int tailLength = 5;public Mouse(int tailLength) {
this.tailLength = tailLength}public int getTailLength() {
return tailLength;}
}
![Page 91: Java SE 8 Programming Basicscdn.cs50.net/2017/fall/seminars/java/java.pdf · Object-oriented programming language Runs on Java Virtual Machine Java SE 8 released in 2014 Java SE 9](https://reader034.fdocuments.in/reader034/viewer/2022042221/5ec73ddff53792694008a24d/html5/thumbnails/91.jpg)
public interface HasTail {public abstract int getTailLength();
}public interface HasWhiskers {
public int getNumberOfWhiskers();}public abstract class Mouse implements HasTail, HasWhiskers {
public int tailLength = 5;public Mouse(int tailLength) {
this.tailLength = tailLength}public int getTailLength() {
return tailLength;}
}
![Page 92: Java SE 8 Programming Basicscdn.cs50.net/2017/fall/seminars/java/java.pdf · Object-oriented programming language Runs on Java Virtual Machine Java SE 8 released in 2014 Java SE 9](https://reader034.fdocuments.in/reader034/viewer/2022042221/5ec73ddff53792694008a24d/html5/thumbnails/92.jpg)
public interface HasTail {public int getTailLength();
}
public interface HasWhiskers {public int getNumberOfWhiskers();
}
public class Mouse implements HasTail, HasWhiskers {public int tailLength = 5;public int numWhiskers = 10;public Mouse(int tailLength) {
this.tailLength = tailLength;}public int getTailLength() {
return tailLength;}public int getNumberOfWhiskers() {
return numWhiskers;}
}
![Page 93: Java SE 8 Programming Basicscdn.cs50.net/2017/fall/seminars/java/java.pdf · Object-oriented programming language Runs on Java Virtual Machine Java SE 8 released in 2014 Java SE 9](https://reader034.fdocuments.in/reader034/viewer/2022042221/5ec73ddff53792694008a24d/html5/thumbnails/93.jpg)
public interface HasTail {public int getTailLength();
}
public interface HasWhiskers {public int getNumberOfWhiskers();
}
public class Mouse implements HasTail, HasWhiskers {public int tailLength = 5;public int numWhiskers = 10;public Mouse(int tailLength, int numWhiskers) {
this.tailLength = tailLength;this.numWhiskers = numWhiskers;
}public Mouse(int tailLength) {
this.tailLength = tailLength;}public int getTailLength() {
return tailLength;}public int getNumberOfWhiskers() {
return numWhiskers;}
}
![Page 94: Java SE 8 Programming Basicscdn.cs50.net/2017/fall/seminars/java/java.pdf · Object-oriented programming language Runs on Java Virtual Machine Java SE 8 released in 2014 Java SE 9](https://reader034.fdocuments.in/reader034/viewer/2022042221/5ec73ddff53792694008a24d/html5/thumbnails/94.jpg)
Methods and Encapsulation
![Page 95: Java SE 8 Programming Basicscdn.cs50.net/2017/fall/seminars/java/java.pdf · Object-oriented programming language Runs on Java Virtual Machine Java SE 8 released in 2014 Java SE 9](https://reader034.fdocuments.in/reader034/viewer/2022042221/5ec73ddff53792694008a24d/html5/thumbnails/95.jpg)
Packages
C:\temp\packagea\ClassA.java
package packagea;public class ClassA {}
C:\temp\packageb\ClassB.java
package packageb;import packagea.ClassA;public class ClassB {
ClassA a;}
![Page 96: Java SE 8 Programming Basicscdn.cs50.net/2017/fall/seminars/java/java.pdf · Object-oriented programming language Runs on Java Virtual Machine Java SE 8 released in 2014 Java SE 9](https://reader034.fdocuments.in/reader034/viewer/2022042221/5ec73ddff53792694008a24d/html5/thumbnails/96.jpg)
Packages
C:\temp\packagea\ClassA.java
package packagea;public class ClassA {}
C:\temp\packageb\ClassB.java
package packageb;import packagea.ClassA;public class ClassB {
ClassA a;}
![Page 97: Java SE 8 Programming Basicscdn.cs50.net/2017/fall/seminars/java/java.pdf · Object-oriented programming language Runs on Java Virtual Machine Java SE 8 released in 2014 Java SE 9](https://reader034.fdocuments.in/reader034/viewer/2022042221/5ec73ddff53792694008a24d/html5/thumbnails/97.jpg)
Packages
C:\temp\packagea\ClassA.java
package packagea;public class ClassA {}
C:\temp\packageb\ClassB.java
package packageb;import packagea.ClassA;public class ClassB {
ClassA a;}
![Page 98: Java SE 8 Programming Basicscdn.cs50.net/2017/fall/seminars/java/java.pdf · Object-oriented programming language Runs on Java Virtual Machine Java SE 8 released in 2014 Java SE 9](https://reader034.fdocuments.in/reader034/viewer/2022042221/5ec73ddff53792694008a24d/html5/thumbnails/98.jpg)
Packages
C:\temp\packagea\ClassA.java
package packagea;public class ClassA {}
C:\temp\packageb\ClassB.java
package packageb;import packagea.ClassA;public class ClassB {
ClassA a;}
![Page 99: Java SE 8 Programming Basicscdn.cs50.net/2017/fall/seminars/java/java.pdf · Object-oriented programming language Runs on Java Virtual Machine Java SE 8 released in 2014 Java SE 9](https://reader034.fdocuments.in/reader034/viewer/2022042221/5ec73ddff53792694008a24d/html5/thumbnails/99.jpg)
Making Methods
public class Animal {String name;public String getName( ) {
return name;}public void setName(String newName) {
name = newName;}
}
![Page 100: Java SE 8 Programming Basicscdn.cs50.net/2017/fall/seminars/java/java.pdf · Object-oriented programming language Runs on Java Virtual Machine Java SE 8 released in 2014 Java SE 9](https://reader034.fdocuments.in/reader034/viewer/2022042221/5ec73ddff53792694008a24d/html5/thumbnails/100.jpg)
Making Methods
public class Animal {String name;public String getName( ) {
return name;}public void setName(String newName) {
name = newName;}
}
![Page 101: Java SE 8 Programming Basicscdn.cs50.net/2017/fall/seminars/java/java.pdf · Object-oriented programming language Runs on Java Virtual Machine Java SE 8 released in 2014 Java SE 9](https://reader034.fdocuments.in/reader034/viewer/2022042221/5ec73ddff53792694008a24d/html5/thumbnails/101.jpg)
Access Modifiers
● private● default (package private)● protected ● public
![Page 102: Java SE 8 Programming Basicscdn.cs50.net/2017/fall/seminars/java/java.pdf · Object-oriented programming language Runs on Java Virtual Machine Java SE 8 released in 2014 Java SE 9](https://reader034.fdocuments.in/reader034/viewer/2022042221/5ec73ddff53792694008a24d/html5/thumbnails/102.jpg)
A Duck Study
![Page 103: Java SE 8 Programming Basicscdn.cs50.net/2017/fall/seminars/java/java.pdf · Object-oriented programming language Runs on Java Virtual Machine Java SE 8 released in 2014 Java SE 9](https://reader034.fdocuments.in/reader034/viewer/2022042221/5ec73ddff53792694008a24d/html5/thumbnails/103.jpg)
package pond.duck;public class FatherDuck {
private String noise = “quack”;private void quack() {
System.out.println(noise);}private void makeNoise {
quack();}
}
![Page 104: Java SE 8 Programming Basicscdn.cs50.net/2017/fall/seminars/java/java.pdf · Object-oriented programming language Runs on Java Virtual Machine Java SE 8 released in 2014 Java SE 9](https://reader034.fdocuments.in/reader034/viewer/2022042221/5ec73ddff53792694008a24d/html5/thumbnails/104.jpg)
package pond.duck;public class FatherDuck {
private String noise = “quack”;private void quack() {
System.out.println(noise);}private void makeNoise {
quack();}
}
![Page 105: Java SE 8 Programming Basicscdn.cs50.net/2017/fall/seminars/java/java.pdf · Object-oriented programming language Runs on Java Virtual Machine Java SE 8 released in 2014 Java SE 9](https://reader034.fdocuments.in/reader034/viewer/2022042221/5ec73ddff53792694008a24d/html5/thumbnails/105.jpg)
package pond.duck;public class FatherDuck {
private String noise = “quack”;private void quack() {
System.out.println(noise);}private void makeNoise {
quack();}
}
![Page 106: Java SE 8 Programming Basicscdn.cs50.net/2017/fall/seminars/java/java.pdf · Object-oriented programming language Runs on Java Virtual Machine Java SE 8 released in 2014 Java SE 9](https://reader034.fdocuments.in/reader034/viewer/2022042221/5ec73ddff53792694008a24d/html5/thumbnails/106.jpg)
package pond.duck;public class BadDuckling {
public void makeNoise() {FatherDuck duck = new FatherDuck();duck.quack(); System.out.println(duck.noise);
}}
![Page 107: Java SE 8 Programming Basicscdn.cs50.net/2017/fall/seminars/java/java.pdf · Object-oriented programming language Runs on Java Virtual Machine Java SE 8 released in 2014 Java SE 9](https://reader034.fdocuments.in/reader034/viewer/2022042221/5ec73ddff53792694008a24d/html5/thumbnails/107.jpg)
package pond.duck;public class BadDuckling {
public void makeNoise() {FatherDuck duck = new FatherDuck();duck.quack(); System.out.println(duck.noise);
}}
![Page 108: Java SE 8 Programming Basicscdn.cs50.net/2017/fall/seminars/java/java.pdf · Object-oriented programming language Runs on Java Virtual Machine Java SE 8 released in 2014 Java SE 9](https://reader034.fdocuments.in/reader034/viewer/2022042221/5ec73ddff53792694008a24d/html5/thumbnails/108.jpg)
package pond.duck;public class BadDuckling {
public void makeNoise() {FatherDuck duck = new FatherDuck();duck.quack(); System.out.println(duck.noise);
}}
![Page 109: Java SE 8 Programming Basicscdn.cs50.net/2017/fall/seminars/java/java.pdf · Object-oriented programming language Runs on Java Virtual Machine Java SE 8 released in 2014 Java SE 9](https://reader034.fdocuments.in/reader034/viewer/2022042221/5ec73ddff53792694008a24d/html5/thumbnails/109.jpg)
package pond.duck;public class MotherDuck {
String noise = "quack";void quack() {
System.out.println(noise); }private void makeNoise() {
quack(); }
}
![Page 110: Java SE 8 Programming Basicscdn.cs50.net/2017/fall/seminars/java/java.pdf · Object-oriented programming language Runs on Java Virtual Machine Java SE 8 released in 2014 Java SE 9](https://reader034.fdocuments.in/reader034/viewer/2022042221/5ec73ddff53792694008a24d/html5/thumbnails/110.jpg)
package pond.duck;public class MotherDuck {
String noise = "quack";void quack() {
System.out.println(noise); }private void makeNoise() {
quack(); }
}
![Page 111: Java SE 8 Programming Basicscdn.cs50.net/2017/fall/seminars/java/java.pdf · Object-oriented programming language Runs on Java Virtual Machine Java SE 8 released in 2014 Java SE 9](https://reader034.fdocuments.in/reader034/viewer/2022042221/5ec73ddff53792694008a24d/html5/thumbnails/111.jpg)
package pond.duck;public class MotherDuck {
String noise = "quack";void quack() {
System.out.println(noise); }private void makeNoise() {
quack(); }
}
![Page 112: Java SE 8 Programming Basicscdn.cs50.net/2017/fall/seminars/java/java.pdf · Object-oriented programming language Runs on Java Virtual Machine Java SE 8 released in 2014 Java SE 9](https://reader034.fdocuments.in/reader034/viewer/2022042221/5ec73ddff53792694008a24d/html5/thumbnails/112.jpg)
package pond.duck;public class GoodDuckling {
public void makeNoise() {MotherDuck duck = new MotherDuck();duck.quack();System.out.println(duck.noise);
}}
![Page 113: Java SE 8 Programming Basicscdn.cs50.net/2017/fall/seminars/java/java.pdf · Object-oriented programming language Runs on Java Virtual Machine Java SE 8 released in 2014 Java SE 9](https://reader034.fdocuments.in/reader034/viewer/2022042221/5ec73ddff53792694008a24d/html5/thumbnails/113.jpg)
package pond.duck;public class GoodDuckling {
public void makeNoise() {MotherDuck duck = new MotherDuck();duck.quack();System.out.println(duck.noise);
}}
![Page 114: Java SE 8 Programming Basicscdn.cs50.net/2017/fall/seminars/java/java.pdf · Object-oriented programming language Runs on Java Virtual Machine Java SE 8 released in 2014 Java SE 9](https://reader034.fdocuments.in/reader034/viewer/2022042221/5ec73ddff53792694008a24d/html5/thumbnails/114.jpg)
package pond.swan;import pond.duck.MotherDuck;public class BadCygnet {
public void makeNoise() {MotherDuck duck = new MotherDuck();duck.quack();System.out.println(duck.noise);
}}
![Page 115: Java SE 8 Programming Basicscdn.cs50.net/2017/fall/seminars/java/java.pdf · Object-oriented programming language Runs on Java Virtual Machine Java SE 8 released in 2014 Java SE 9](https://reader034.fdocuments.in/reader034/viewer/2022042221/5ec73ddff53792694008a24d/html5/thumbnails/115.jpg)
package pond.swan;import pond.duck.MotherDuck;public class BadCygnet {
public void makeNoise() {MotherDuck duck = new MotherDuck();duck.quack();System.out.println(duck.noise);
}}
![Page 116: Java SE 8 Programming Basicscdn.cs50.net/2017/fall/seminars/java/java.pdf · Object-oriented programming language Runs on Java Virtual Machine Java SE 8 released in 2014 Java SE 9](https://reader034.fdocuments.in/reader034/viewer/2022042221/5ec73ddff53792694008a24d/html5/thumbnails/116.jpg)
Protected Access
![Page 117: Java SE 8 Programming Basicscdn.cs50.net/2017/fall/seminars/java/java.pdf · Object-oriented programming language Runs on Java Virtual Machine Java SE 8 released in 2014 Java SE 9](https://reader034.fdocuments.in/reader034/viewer/2022042221/5ec73ddff53792694008a24d/html5/thumbnails/117.jpg)
package pond.shore;public class Bird {
protected String text = "floating";protected void floatInWater() {
System.out.println(text);}
}
![Page 118: Java SE 8 Programming Basicscdn.cs50.net/2017/fall/seminars/java/java.pdf · Object-oriented programming language Runs on Java Virtual Machine Java SE 8 released in 2014 Java SE 9](https://reader034.fdocuments.in/reader034/viewer/2022042221/5ec73ddff53792694008a24d/html5/thumbnails/118.jpg)
package pond.shore;public class Bird {
protected String text = "floating";protected void floatInWater() {
System.out.println(text);}
}
![Page 119: Java SE 8 Programming Basicscdn.cs50.net/2017/fall/seminars/java/java.pdf · Object-oriented programming language Runs on Java Virtual Machine Java SE 8 released in 2014 Java SE 9](https://reader034.fdocuments.in/reader034/viewer/2022042221/5ec73ddff53792694008a24d/html5/thumbnails/119.jpg)
package pond.shore;public class Bird {
protected String text = "floating";protected void floatInWater() {
System.out.println(text);}
}
![Page 120: Java SE 8 Programming Basicscdn.cs50.net/2017/fall/seminars/java/java.pdf · Object-oriented programming language Runs on Java Virtual Machine Java SE 8 released in 2014 Java SE 9](https://reader034.fdocuments.in/reader034/viewer/2022042221/5ec73ddff53792694008a24d/html5/thumbnails/120.jpg)
package pond.goose;import pond.shore.Bird; public class Gosling extends Bird {
public void swim() {floatInWater();System.out.println(text);
}}
![Page 121: Java SE 8 Programming Basicscdn.cs50.net/2017/fall/seminars/java/java.pdf · Object-oriented programming language Runs on Java Virtual Machine Java SE 8 released in 2014 Java SE 9](https://reader034.fdocuments.in/reader034/viewer/2022042221/5ec73ddff53792694008a24d/html5/thumbnails/121.jpg)
package pond.goose;import pond.shore.Bird; public class Gosling extends Bird {
public void swim() {floatInWater();System.out.println(text);
}}
![Page 122: Java SE 8 Programming Basicscdn.cs50.net/2017/fall/seminars/java/java.pdf · Object-oriented programming language Runs on Java Virtual Machine Java SE 8 released in 2014 Java SE 9](https://reader034.fdocuments.in/reader034/viewer/2022042221/5ec73ddff53792694008a24d/html5/thumbnails/122.jpg)
package pond.goose;import pond.shore.Bird; public class Gosling extends Bird {
public void swim() {floatInWater();System.out.println(text);
}}
![Page 123: Java SE 8 Programming Basicscdn.cs50.net/2017/fall/seminars/java/java.pdf · Object-oriented programming language Runs on Java Virtual Machine Java SE 8 released in 2014 Java SE 9](https://reader034.fdocuments.in/reader034/viewer/2022042221/5ec73ddff53792694008a24d/html5/thumbnails/123.jpg)
package pond.goose;import pond.shore.Bird; public class Gosling extends Bird {
public void swim() {floatInWater();System.out.println(text);
}}
![Page 124: Java SE 8 Programming Basicscdn.cs50.net/2017/fall/seminars/java/java.pdf · Object-oriented programming language Runs on Java Virtual Machine Java SE 8 released in 2014 Java SE 9](https://reader034.fdocuments.in/reader034/viewer/2022042221/5ec73ddff53792694008a24d/html5/thumbnails/124.jpg)
package pond.shore; public class BirdWatcher {
public void watchBird() {Bird bird = new Bird();bird.floatInWater();System.out.println(bird.text);
}}
![Page 125: Java SE 8 Programming Basicscdn.cs50.net/2017/fall/seminars/java/java.pdf · Object-oriented programming language Runs on Java Virtual Machine Java SE 8 released in 2014 Java SE 9](https://reader034.fdocuments.in/reader034/viewer/2022042221/5ec73ddff53792694008a24d/html5/thumbnails/125.jpg)
package pond.shore; public class BirdWatcher {
public void watchBird() {Bird bird = new Bird();bird.floatInWater();System.out.println(bird.text);
}}
![Page 126: Java SE 8 Programming Basicscdn.cs50.net/2017/fall/seminars/java/java.pdf · Object-oriented programming language Runs on Java Virtual Machine Java SE 8 released in 2014 Java SE 9](https://reader034.fdocuments.in/reader034/viewer/2022042221/5ec73ddff53792694008a24d/html5/thumbnails/126.jpg)
package pond.shore; public class BirdWatcher {
public void watchBird() {Bird bird = new Bird();bird.floatInWater();System.out.println(bird.text);
}}
![Page 127: Java SE 8 Programming Basicscdn.cs50.net/2017/fall/seminars/java/java.pdf · Object-oriented programming language Runs on Java Virtual Machine Java SE 8 released in 2014 Java SE 9](https://reader034.fdocuments.in/reader034/viewer/2022042221/5ec73ddff53792694008a24d/html5/thumbnails/127.jpg)
package pond.inland;import pond.shore.Bird; public class BirdWatcherFromAfar {
public void watchBird() {Bird bird = new Bird();bird.floatInWater();System.out.println(bird.text);
}}
![Page 128: Java SE 8 Programming Basicscdn.cs50.net/2017/fall/seminars/java/java.pdf · Object-oriented programming language Runs on Java Virtual Machine Java SE 8 released in 2014 Java SE 9](https://reader034.fdocuments.in/reader034/viewer/2022042221/5ec73ddff53792694008a24d/html5/thumbnails/128.jpg)
package pond.inland;import pond.shore.Bird; public class BirdWatcherFromAfar {
public void watchBird() {Bird bird = new Bird();bird.floatInWater();System.out.println(bird.text);
}}
![Page 129: Java SE 8 Programming Basicscdn.cs50.net/2017/fall/seminars/java/java.pdf · Object-oriented programming language Runs on Java Virtual Machine Java SE 8 released in 2014 Java SE 9](https://reader034.fdocuments.in/reader034/viewer/2022042221/5ec73ddff53792694008a24d/html5/thumbnails/129.jpg)
package pond.inland;import pond.shore.Bird; public class BirdWatcherFromAfar {
public void watchBird() {Bird bird = new Bird();bird.floatInWater();System.out.println(bird.text);
}}
![Page 130: Java SE 8 Programming Basicscdn.cs50.net/2017/fall/seminars/java/java.pdf · Object-oriented programming language Runs on Java Virtual Machine Java SE 8 released in 2014 Java SE 9](https://reader034.fdocuments.in/reader034/viewer/2022042221/5ec73ddff53792694008a24d/html5/thumbnails/130.jpg)
package pond.inland;import pond.shore.Bird; public class BirdWatcherFromAfar {
public void watchBird() {Bird bird = new Bird();bird.floatInWater();System.out.println(bird.text);
}}
![Page 131: Java SE 8 Programming Basicscdn.cs50.net/2017/fall/seminars/java/java.pdf · Object-oriented programming language Runs on Java Virtual Machine Java SE 8 released in 2014 Java SE 9](https://reader034.fdocuments.in/reader034/viewer/2022042221/5ec73ddff53792694008a24d/html5/thumbnails/131.jpg)
public class Animal {private int age;public int getAge() {
return age;}
}
public class Tiger extends Animal {public void roar() {
System.out.println(“roar”);}
public void age() {System.out.println(age);
}}
![Page 132: Java SE 8 Programming Basicscdn.cs50.net/2017/fall/seminars/java/java.pdf · Object-oriented programming language Runs on Java Virtual Machine Java SE 8 released in 2014 Java SE 9](https://reader034.fdocuments.in/reader034/viewer/2022042221/5ec73ddff53792694008a24d/html5/thumbnails/132.jpg)
public class Animal {private int age;public int getAge() {
return age;}
}
public class Tiger extends Animal {public void roar() {
System.out.println(“roar”);}
public void age() {System.out.println(age);
}}
![Page 133: Java SE 8 Programming Basicscdn.cs50.net/2017/fall/seminars/java/java.pdf · Object-oriented programming language Runs on Java Virtual Machine Java SE 8 released in 2014 Java SE 9](https://reader034.fdocuments.in/reader034/viewer/2022042221/5ec73ddff53792694008a24d/html5/thumbnails/133.jpg)
WHY?
![Page 134: Java SE 8 Programming Basicscdn.cs50.net/2017/fall/seminars/java/java.pdf · Object-oriented programming language Runs on Java Virtual Machine Java SE 8 released in 2014 Java SE 9](https://reader034.fdocuments.in/reader034/viewer/2022042221/5ec73ddff53792694008a24d/html5/thumbnails/134.jpg)
![Page 135: Java SE 8 Programming Basicscdn.cs50.net/2017/fall/seminars/java/java.pdf · Object-oriented programming language Runs on Java Virtual Machine Java SE 8 released in 2014 Java SE 9](https://reader034.fdocuments.in/reader034/viewer/2022042221/5ec73ddff53792694008a24d/html5/thumbnails/135.jpg)
Thanks for Watching!Contact: [email protected]