1. 程式人生 > >Java學習之第三章——面向物件程式設計

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)按照宣告的位置不同,成員變數&區域性變數