一、面向物件學習的三條主線
1.Java類及類的成員:屬性、方法、構造器、代碼塊、內部類;
2.面向物件的三大特性:封裝、繼承、多型;
3.其它關鍵字:this、super、static、final、abstract、interface、package、import等,
二、面向程序和面向物件
舉例:人把大象裝進冰箱
面向程序:
理解:強調的是功能行為,以函式為最小單位,考慮怎么做,
具體實作:
①把冰箱門打開;
②抬起大象,塞進冰箱;
③把冰箱門關閉,
面向物件:
理解:強調具備了功能的物件,以類/物件為最小單位,考慮誰來做,
具體實作:
人{
打開(冰箱){
冰箱.開開();
}
抬起(大象){
大象.進入(冰箱);
}
關閉(冰箱){
冰箱.閉合();
}
}
冰箱{
開開(){}
閉合(){}
}
大象{
進入(冰箱){}
}
注:以上皆為偽代碼,
三、面向物件的兩個要素
類:對一類事物的描述,是抽象的、概念上的定義,
物件:是實際存在的該類事物的每個個體,因而也稱為實體(instance)
四、總結
1.面向物件程式設計的重點是類的設計;
2.設計類,就是設計類的成員,
①屬性 = 成員變數 = field = 域、欄位
②方法 = 成員方法 = 函式 = method
③創建類的物件 = 類的實體化 = 實體化類
五、面向物件思想落地的實作
1.創建類,設計類的成員;
2.創建類的物件;
3.通過“物件.屬性”或“物件.方法”呼叫物件的結構
注:如果創建了一個類的多個物件,則每一個物件都獨立的擁有一套類的屬性(非static的),意味著,如果我們修改一個物件的屬性a,則不影響另一個物件的屬性a的值,
代碼:
public class PersonTest { public static void main(String[] args) { //2.創建Person類的物件 Person p1 = new Person(); //3.呼叫物件的結構:屬性、方法 //3.1呼叫屬性:“物件.屬性” p1.name = "Tom"; p1.isMale = true; System.out.println(p1.name); //3.2呼叫方法:“物件.方法” p1.eat(); p1.sleep(); p1.talk("Chinese"); //再創建一個物件 Person p2 = new Person(); System.out.println(p2.name);//null System.out.println(p2.isMale); //將p1變數保存的物件地址值賦給p3,導致p1和p3指向了堆空間中的同一個物件物體 Person p3 = p1; System.out.println(p3.name);//Tom p3.age = 18; System.out.println(p1.age);//18 } } //1.創建類,設計類的成員 class Person{ //屬性 String name; int age = 1; boolean isMale; //方法 public void eat(){ System.out.println("人可以吃飯"); } public void sleep(){ System.out.println("人可以睡覺"); } public void talk(String language){ System.out.println("人可以說話,使用的是:" + language); } }
六、物件的記憶體決議

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/100209.html
標籤:Java
