黑馬程序員 JAVA基礎 面向對象之封裝 繼承 多態

 

                           ------- android培訓java培訓期待與您交流! ----------

1:面向對象
 (1)面向對象:是一種編程思想。
  A:它是相對於面向過程而言的。
   a:面向過程強調的是過程
   b:面向對象強調的是對象調用功能,看最終的結果
  B:它是基於面向過程的。
 (2)面向對象的特點:
  A:是一種符合人們思考習慣的一種思想。
  B:把複雜的事情簡單化了。
  C:是我們從以前的執行者變成了現在的指揮者。

  舉例:
   電腦城買電腦
   宅男班長不出門吃飯
   去飯店吃飯
   自己洗衣服,做飯

   面試怎麼談???
 (3)類與對象的關係
  A:類和對象分別是什麼?
   a:類 是對同一類事物的抽象
   b:對象 是該類事物的具體的存在的個體
  B:java是怎麼來描述現實世界事物的?
   a:現實世界的事物可以通過屬性和行爲來描述
   b:java對現實世界的事物是通過類來體現的
   c:java中的成員和現實世界事物的對應關係:
    成員變量:屬性
    成員方法:行爲
 
 (5)注意:
  A:有對象,就直接用。沒有對象,就創建對象用。
  B:如何創建對象呢?
   通過new來創建對象。
   格式:
    類名 對象名 = new 類名();
  C:如何使用對象呢?
   對象名.方法名(參數)
   對象名.屬性名 其實這裏是一個它所定義類型的數據

2:封裝

 (1)隱藏實現細節,提供公共的訪問方式。
 (2)好處:
  使變化隔離
  便於使用
  提高複用性
  提高安全性
  舉例:電腦機箱問題
 (3)java中如何體現封裝呢?
  類,方法。

  用private私有關鍵字體現。
   A:是一個訪問修飾關鍵字
   B:可以修飾成員方法和成員變量
   C:只能在本類中被訪問
 (4)代碼體現:

  class Student
  {
   //封裝
   private String name;
   private int age;

   //構造方法
   public Student(){}

   public Student(String name,int age)
   {
    //this關鍵字
    this.name = name;
    this.age = age;
   }

   public void setName(String name)
   {
    this.name = name;
   }

   public String getName()
   {
    return name;
   }

   public void setAge(int age)
   {
    this.age = age;
   }

   public int getAge()
   {
    return age;
   }
  }
3:繼承
 (1)繼承:在java中,我們在定義一個類的時候,可以不用全部定義類中的內容,
          通過繼承把其他類的非私有功能可以直接擁有。
 (2)父類:被繼承的類。(超類,基類)
    子類:繼承其他類的類。
 (3)繼承的好處:
  A:提高代碼的複用性。
  B:讓類與類之間產生了關係,是多態的前提。
 (4)使用繼承:
  格式:
   class 類A extends 類B{}

  什麼使用時候繼承呢?
   假設判斷法。
   繼承是:"is a"的關係 "x is a y"
 (5)特點:
  A:java只支持單繼承
  B:java可以支持多重(層)繼承

內存圖:

黑馬程序員 JAVA基礎二 面向對象之封裝 繼承 多態 - 619294300 - 619294300的博客

 


4:多態
 (1)多態:就是對象在不同時刻代表的不同狀態。
  舉例:
   水(水蒸氣,水,冰)
 (2)多態的前提:
  A:有繼承關係
  B:有方法的重寫
  C:有父類引用指向子類對象

  舉例:
   class Fu{ public void show(){sop("Fu")} }

   class Zi extends Fu{ public void show(){sop("zi")} }
   
   多態:
    Fu f = new Zi();
 (3)多態的好處:
  A:提高了代碼的後期的維護性
  B:提高了代碼的後期的擴展性

  弊端:只能使用父類中定義過的方法。子類特有方法不能使用。
 (4)多態研究的內容(對象):
  A:成員變量:
   編譯看左邊,執行看左邊

  B:成員方法:
   編譯看左邊,執行看右邊
  
  C:靜態修飾成員:
   編譯看左邊,執行看左邊
   
   注意:跟對象無關,也可以說不能算作多態的內容。
         靜態修飾的東西。

  向上轉型:爲了多態使用對象
  向下轉型:爲了使用對象的特殊功能

多態的內存圖:

黑馬程序員 JAVA基礎二 面向對象之封裝 繼承 多態 - 619294300 - 619294300的博客

                               ------- android培訓java培訓期待與您交流! ----------

 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章