類是對某一類事物共性的抽象概念,而對象描述的是一個具體的產物。
每個屬性的集合就構成了一個對象,可是全部的屬性都應該是羣體的定義,而羣體的定義就造成了一個類。
類是一個模板,而對象纔是類可使用的實例。
成員屬性:(Field)有時候會簡化成其爲屬性好比——年齡,姓名,性別
操做方法:(Method)定義對象具備的處理行爲好比——唱歌、跳舞、游泳、運動java
A:咱們學習編程是爲了什麼編程
B:咱們如何描述現實世界事物數組
C:Java中最基本的單位是類,Java中用class描述事物也是如此安全
D:定義類其實就是定義類的成員(成員變量和成員方法)學習
A:文件名問題測試
B:如何使用對象?this
C:如何使用成員變量呢?spa
D:如何使用成員方法呢?設計
* 屬性:姓名,年齡,性別 * 行爲:學習,睡覺 class JavaObject { public static void main(String [] args) { //類名 對象名 = new 類名(); Student s = new Student(); //調用屬性並賦值 s.name = "張三"; s.age = 23; s.gender = "男"; System.out.println(s.name + "..." + s.age + "..." + s.gender); //使用變量 //調用方法 s.study(); s.sleep(); } } class Student { String name; //姓名 int age; //年齡屬性 String gender; //性別屬性 public void study() { //定義學習的方法; System.out.println("學生學習"); } public void sleep() { System.out.println("學生睡覺"); } }
* 車 * 成員變量:顏色,輪胎數 * 成員方法:跑 class JavaObject { public static void main(String [] args) { Car c = new Car(); //建立對象 c.color = "red";//調用屬性並賦值 c.num = 4; c.run();//調用方法 Car c2 = new Car(); c2.color = "black"; c2.num = 3 ; c2.run(); c2 = null; //當引用設置爲null,空指針異常。 c2.run(); Car c3 = c2; c2.run(); } } class Car { String color; //顏色 int num; //輪胎數 public void run() { System.out.println("color" + num); } }
A:在類中的位置不一樣指針
B:在內存中的位置不一樣
C:生命週期不一樣
D:初始化值不一樣
注意事項:
class JavaObject { public static void main(String [] args) { Person p = new Person(); p.speak(); } } class Person { String name; //成員變量 int num; public void speak() { //x和num都是局部變量 int num = 10; System.out.println(num); System.out.println(name); //就近原則 } }
A:方法的參數是類名public void print(Student s){}//print(new Student());
class JavaObject { public static void main(String [] args) { print(10); //賦值 Student s = new Student(); //建立對象 print(s); } public static void print(int x) { //形式參數是基本數據類型,傳遞的值 System.out.println(x); } //形式參數是引用數據類型,傳遞的地址值 public static void print(Student stu) { //Student stu = new Student(); stu.name = "張三"; stu.age = 23; stu.speak(); } } class Student { String name; //成員變量 int age; public void speak() { //局部變量 System.out.println(name + "..." + age); } }
a:調用方法
class JavaObject { public static void main(String [] args) { //Car c1 = new Car(); //建立有名字的對象 //c1.run(); //new Car().run(); //匿名對象調用完就變成垃圾了 //new Car().run(); //匿名對象只適合對方法的一次調用,由於調用屢次就會產生多個對象,不如用有名字對象,不然浪費內存 //匿名對象能夠調用屬性,可是沒有意義,由於調用後就變成垃圾,若是須要賦值仍是用有名字對象 new Car().color = "red"; new Car().num = 23; new Car().run(); } } class Car { String color; int num; public void run() { System.out.println(color + "..." + num); } }
b:匿名對象能夠做爲實際參數傳遞
class JavaObject { public static void main(String [] args) { /*Car c1 = new Car(); //建立有名字的對象 c1.color = "red"; c1.num = 8; c1.run();*/ //Car c1 = new Car(); //method(c1); //method(new Car()); //Car c2 = new Car(); //method(c2); //method(new Car()); for (int i = 0;i < 10 ;i ++ ) { method(new Car()); } } //抽取方法,提升代碼的複用性 protected default public static void method(Car cc) { //Car cc = new Car(); cc.color = "red"; cc.num = 8; cc.run(); } }
A:封裝概述
B:封裝好處
C:封裝原則
B:private關鍵字特色
C:案例演示
public class JavaObject { public static void main(String [] args) { System.out.println(""); Person p1 = new Person(); p1.name = "張三"; //p1.age = 23; //p1.speak(); p1.setAge(-17); //int age1 = p1.getAge(); System.out.println(p1.getAge()); } } class Person { String name; private int age; //私有成員變量 public void setAge(int a) { //a = 17 //對外提供公共的訪問方法 if (a > 18 && a<120) { age = a; } else { System.out.println("輸入有誤"); } } public int getAge() { //對外提供公共的訪問方法 return age; } public void speak() { System.out.println(name + "..." + age); } }
A:this關鍵字特色
B:案例演示
public class JavaObject { public static void main(String [] args) { System.out.println(""); Person p1 = new Person(); p1.setName("張三"); p1.setAge(23); System.out.println(p1.getName() + "..." + p1.getAge()); Person p2 = new Person(); p2.setName("李四"); p2.setAge(32); p2.speak(); } } class Person { private String name; private int age; public void setName(String name) { this.name = name;//在這裏this表明p1的地址值 } public String getName() { return name; } public void setAge(int age) { //a = 17 if (age > 18 && age<120) { this.age = age; } else { System.out.println("輸入有誤"); } } public int getAge() { return age; } public void speak() { System.out.println(name + "..." + age); } }
手機類
public class JavaObject { //建立對象phone public static void main(String [] args) { Phone p1 = new Phone(); //01,主方法聲明p1,堆內存建立實體 p1.setBrand("Apple"); //03進棧內存 賦值brand p1.setPrice(5288); //05price System.out.println(p1.getBrand() + "..." + p1.getPrice());//09 } } class Phone { private String brand; //品牌 02null private int price; //價格 0 public void setBrand(String brand) { //設置品牌04賦值 this.brand = brand; } public String getBrand() { //獲取品牌07 return brand; } public void setPrice(int price) { //設置價格 06 this.price = price; } public int getPrice() { //獲取價格08 return price; } public void call() { System.out.println("打電話"); } public void sendMessage() { System.out.println("發信息"); } public void palyGame() { System.out.println("打遊戲"); } }