Java學習之第三章——面向物件程式設計
學習面向物件(OOP)內容的三條主線
1.java類及類的成員
2.面向物件的三大特徵(封裝 Encapsulation,繼承 Inheritance,多型 Polymorphism)
3.其他關鍵字
OOP:Object Oriented Programming
面向過程:procedure oriented programming
理解一:人開門
面向過程:人 開啟 門
面向物件:
人{
開啟(門){
門.開開();
}
}
門{
開開(){
}
}
理解二:人把大象裝進冰箱
面向過程:1)開啟冰箱 2)把大象放進去 3)關閉冰箱
面向物件:
人{
開啟(冰箱){冰箱.開開()}
操作(大象){大象.進入(冰箱)}
關閉(冰箱){冰箱.合上()}
}
大象{
進入(冰箱){}
}
冰箱{
開開(){}
合上(){}
}
類與類之間的關係:
關聯關係,繼承關係,聚合關係
Field=屬性=成員變數,Method=(成員)方法=函式
一、面向物件思想的落地法則一:
1.設計類,並設計類的成員(成員變數&成員方法)
2.通過類,未建立類的物件(也稱作類的例項化)
3.通過“物件.屬性”或“物件.方法”來呼叫,完成相應的功能
二、建立的多個物件,彼此各自擁有一套類的屬性,當對其中一個物件的屬性進行修改時,不會影響到其他物件的屬性
//a3不意味著重新建立的一個物件,而是a1與a3公用一個物件實體
Animal a3=a1;
System.out.print("name"+a3.name+"age"+a3.age);
a3.name="維尼熊";
System.out.print("a1.name"+a1.name+"age"+a1.age);
三、類的屬性(成員變數)
成員變數vs區域性變數
相同點:1.遵循變數的宣告格式。資料型別 變數名=初始化值
2.都有作用域
不同點:1.宣告的位置不同:成員變數:宣告在類內,方法外
區域性變數:宣告在方法內,方法的形參部分,程式碼塊內
2.成員變數的修飾符有四個:public private protected 預設
區域性變數沒有修飾符,與所在的方法修飾符相同
3.初始化值:一定會有初始化值
成員變數:如果在宣告的時候,不顯式的賦值,那麼不同資料型別會有不同的初始化值
byte short int long==>0
float double ==>0.0
char==>空格
boolean==>false
引用型別變數==>null
區域性變數:一定要顯式的賦值。(區域性變數沒有預設初始化值)
4.二者在記憶體中存放的位置不同:成員變數存在於堆空間中,區域性變數:棧空間中
總結:關於變數的分類:1)按照資料型別的不同:基本資料型別(8種)&引用資料型別
2)按照宣告的位置不同,成員變數&區域性變數