面向對象重點

第一天
1類和對象
1)什麼是對象
  對象就是東西
  萬物皆對象(東西)
  現實生活中是先有對象,後抽象出類型
2)java中的類和對象
  先有類,後有對象
  2.1)定義類
      類中包含屬性和方法
  2.2)實例化對象
      Dog d=new Dog();
  2.3)使用對象
      使用對象的引用打.調用屬性和方法
      d.name="xxx"
      d.age=10;
      d.show();


第二天
1方法重載
1)什麼是方法重載
  在同一個類中,方法名相同,參數列表不同的
  多個方法,訪問修飾符與返回值類型無關
2)意義
  方便記憶
  構造方法要用

2構造方法
1)什麼是構造方法
  在實例化對象時運行的特殊的方法
2)爲什麼要構造方法
  方便爲對象賦值
3)怎麼寫
  public Dog(){
  }
4)注意事項
  4.1)類中無構造,默認生成無參構造
  4.2)類中有構造,無默認構造
  4.3)構造方法可以有參數,爲屬性賦值
  4.4)構造方法可以重載

this
1)什麼是this
  this,指當前對象
  程序運行過程中,對象對自身的引用
2)屬性
  如果屬性和局部變量同名
  需要使用this.來指定屬性
  區分局部變量
3)方法
4)構造

第三天
1引用類型數組
 Dog[] ds=new Dog[4];
1)什麼是引用類型數組
  我們編寫的自造類的類型的數組
  (自造類,String,數組)
2)引用類型數組元素的默認值是null
  小心空指針異常
3)怎麼對引用類型數組複製
  1.Dog[] ds=new Dog[4];
    ds[0]=new Dog(....);
    ds[1]=new Dog(....);
    ...
  2.Dog[] ds={
       new Dog(....),
       new Dog(....),
       ...
    };
  引用類型數組可以遍歷
  如有必要遍歷時判斷元素是否爲空

2繼承
1)什麼是繼承
  繼承是面向對象編程代碼複用的一種方式
2)什麼使用繼承
  減少代碼冗餘
  增強程序的可維護性和可擴展性
3)怎麼使用繼承
  在類名後加extends關鍵字
  public class Dog extedns Pet{
  }

第四天
1繼承下構造方法運行
1)實例化子類對象
  實際上也實例化了一個父類對象
  子類對象中包含着一個父類對象的引用
2)先運行父類構造,再運行子類構造
3)所有類的父類是Object
super關鍵字
1)當前類對象對自身父類對象的引用
2)調用屬性
3)調用方法
4)調用構造
  super(參數)
  編寫在子類構造方法中的第一行
  來調用父類構造
  如果不使用super或this調用構造方法
  那麼默認調用super()(父類無參構造)

2方法重寫
1)什麼是方法重寫
  在子類中編寫一個和父類的方法
  方法名相同,參數列表相同
  返回值*和訪問修飾符*相同的方法
2)爲什麼使用方法重寫
  父類中的方法可能不能滿足子類的要求
  子類中不滿意父類方法的編寫

3向上造型
1)什麼是向上造型
  子類對象賦給父類引用
2)使用的效果
  父類引用調用方法
  運行的是子類重寫後的方法
3)一定程度上彌補了
  父類類型只能調用父類中屬性和方法的
  缺點

第五天
1.包
2.import
3.訪問修飾符
1)什麼是訪問修飾符
  修飾類中的成員的可見級別
2)訪問修飾符
         當前類   同包  子類  其他
public     √       √      √     √   寬鬆
protected  √       √      √ 
(默認)     √       √
private    √                        嚴格


4.final關鍵字
1)修飾類
  類不能被繼承
2)修飾方法
  方法不能被重寫
3)修飾屬性
  值不能被修改
  且必須在實例化對象之前賦值

4)局部變量
  被final修飾的局部變量(參數)
  只能被賦值一次

第六天
static關鍵字
1)屬性
  使用類名調用
  所有對象共享一個資源
  保存在方法區

2)方法
  使用類名調用
  不需要實例化對象
  靜態方法中沒有隱式的this關鍵字

3)初始化代碼塊
  JVM加載這個類時執行
  這個代碼塊程序運行一次只會執行一次

抽象類
1)什麼是抽象類
  沒有對象存在的類
2)爲什麼要抽象類
  有些方法無法實現
3)抽象類的特徵
  3.1)不能實例化
  3.2)可以編寫抽象方法
  3.3)抽象方法的數量不限
抽象方法
1)什麼是抽象方法
  無法具體編寫方法內容的方法
2)爲什麼需要抽象方法
  爲了約束子類的方法
3)抽象方法的特徵
 3.1)不能有方法體
 3.2)子類必須重寫父類中的抽象方法
     除非子類也是抽象類
 3.3)抽象方法必須在抽象類中


第七天
內部類
1)成員內部類
2)匿名內部類

第八天
接口
1)什麼是接口
  接口是一種特殊的數據類型
2)爲什麼要接口
  實現java中的多繼承
3)接口特徵
 3.1)不能實例化
 3.2)沒有構造
 3.3)所有屬性都是公有靜態常量
 3.4)所有方法都是公有抽象方法

第九天

多態
1)什麼多態
  一個父類的多種子類對象
  對同一個方法調用做出的不同操作
2)爲什麼使用多態
  爲了提高程序的可擴展性
3)多態的實現步驟
  3.1)創建父類(接口),編寫方法
  3.2)創建子類繼承(實現)父類(接口),重寫方法
  3.3)子類(實現類)對象,賦給父類(接口)引用
  3.4)使用父類(接口)引用,調用子類(實現類)方法

父類類型轉換成子類類型
1)怎麼實現轉換
  通過強制類型轉換
2)語法
  (子類類型)父類引用
3)轉換過程中發生異常
  將一個非強制轉換的目標類型對象
  轉換爲目標類型時,會發生異常
  ClassCastException
  類型轉換異常

instanceof關鍵字
1)什麼是instanceof
  判斷一個對象是否屬於一個類型
2)爲什麼使用instanceof
  在轉換之前,先判斷,避免類型轉換異常
3)怎麼使用instanceof
  <引用> instanceof <類型>
  運算結果是true或false
  一般在if的()中判斷,使用


垃圾回收管理機制
1)什麼是垃圾回收管理機制(GC)
  1.1)什麼是垃圾
      程序中使用過的,並且之後的程序
      不會在使用的對象或資源
  1.2)什麼是垃圾回收
      垃圾如果放任不管
      會逐漸佔滿內存,
      造成內存溢出,內存泄漏的問題
      回收垃圾,就是將不使用的資源或對象
      釋放掉的操作
  1.3)垃圾回收管理機制
      就是JVM中自帶的一個回收垃圾的
      線程(程序)
2)其他語言是如何回收垃圾的
  c++:沒有垃圾回收機制
      程序員要編寫代碼來釋放對象或資源
      佔用的內存
      通過析構函數,來釋放內存

3)垃圾回收機制的優點和不足
 優點:java程序員,不需要考慮垃圾回收的問題
 缺點:1.垃圾回收管理機制本身是佔用內存的
      2.垃圾回收的時機,並不是立即的
      3.垃圾回收機制,只能回收java程序中
        產生的垃圾,
    在其他媒介中產生的垃圾要手動回收

4)垃圾的判定和原理
 4.1)判斷一個對象或資源是垃圾的規則有很多
 4.2)多種規則之一:引用計數法
     內存中保存每個對象被引用的個數
     如果這個個數爲0,那麼即視爲垃圾
 4.3)如何標記一個對象爲垃圾
     <引用>=null;
 
5)finalize方法
 5.1)finalize是Object類中編寫的一個方法
 5.2)這個方法會被垃圾回收管理機制
     在回收這個對象前調用

6)System.gc();
 這個方法能通知
 垃圾回收管理機制儘快回收程序中的垃圾
 

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