1. 程式人生 > >Java-------->>類與對象

Java-------->>類與對象

地址 字符串 兩個 全局變量 方式 .html target book 信息

Java--------->類與對象

  (一)重要知識點

  Static用法:

    1,static 作用於方法時:該方法屬於類方法,無需本類的對象即可調用此方法(可以直接通過類來調用),局限性:只能調用static 方法和數據,且不能以任何方式引用this和super關鍵字。

    2,static作用於變量:相當於全局變量,static以最後一個調用為準(可統計方法被執行的次數),static{}這類靜態塊優先執行,不論順序,靜態變量只會需要要初始化一次,即未其分配好了內存,而如果普通的全局變量每調用該類,都會被執行一次。

    3,static作用於類時:即內部靜態類,可以直接做為普通類來new 出來 詳細見這裏

  This用法:

    1,調用本類中的屬性;2,調用本類中的其他方法(靜態方法不能)3,返回對象的值(如:return this)

  參數的傳遞

    傳遞方式:值傳遞(實參傳入給形參),而非對象傳遞,在傳遞的參數區分好是基本類型(傳值)還是引用類型(形參為地址值)

    傳遞多個同類型的參數 如test(int i ,String ...books)

  Super方法:調用父類的方法,如super.成員變量,super(方法參數)

  Final關鍵字:

    1,final修飾基本類型和引用類型區別:基本類型:值不變,引用類型:引用地址不變,對象內容可以改變。

    2,final修飾的方法不能被重寫

    3,final修飾的類不能有子類

  方法的重載:方法名相同和參數列表不同,與返回類型等無關

  方法的重寫:兩同兩小一大

    1,方法名相同,參數列表相同

    2,方法返回類型小於或等於父類,子類拋出的異常小於等於父類

    3,方法訪問權限大於等於父類

  變量說明:

    技術分享

  訪問權限:

技術分享

  包的分類:

    技術分享

  ==與equal一些易忘點:

    1,對於基本類型變量,只要兩個變量都是數值類型且值相等,則==成立如(3==3.0F)true;和(65==‘A’)true,對於對象,要求引用類型指向同一個對象,則返回True

    2,字符串常量池,如String a="23";String b="2",String c="3";String d=b+c; a==d false;a=b+"3" false;//因為在編譯時無法確定(在賦值時不能直接識別類型。)

  抽象類和抽象方法的特點:

    1,抽象類和抽象方法必須用Abstract修飾,且抽象方法沒方法體,如public abstract String test();即可無括號

    2,抽象類無法被實例化(即new)

    3,抽象類中可以包含成員變量,方法體(抽象方法和普通方法),構造器,初始化塊,內部類(接口,枚舉)

    4,含有抽象方法的類只能定義為抽象類

  接口:

    1,抽象類中可以包含成員變量,方法體(抽象方法和默認方法(default),類方法(static)(Java8允許的)),內部類(public static修飾)

    2,成員變量默認public static final ;方法默認是public abstract

    3,接口支持多繼承,

  內部類:

    1,內部類有(private,protected,static)三個權限訪問,內部能訪問外部變量,而外部不能直接訪問內部成員(可以借用對象)。

    2,非靜態內部類不能含有靜態變量,方法,初始塊

    3,靜態內部類:靜態類不能訪問實例成員(即非靜態)

    4,局部內部類:聲明在方法中,不能設置static和訪問權限,

    5,匿名類:1,不能為抽象類;2,不能定義構造方法(匿名類沒有類名);

  枚舉類與普通類區別:

  技術分享

  垃圾回收機制:

技術分享

    其中堆內存對象的三種狀態轉換:

技術分享

  Jar文件常用命令:

    1,創建jar:jar cvf hello.jar hello//c:創建  f:文件信息  v:詳細過程報告

    2,解壓jar:jar xvf hello.jar //x:解壓

    3,往jar中添加文件:jar uf hello.jar HelloWorld.java //u:添加

    4,顯示jar內容:jar tvf hello.jar

Java-------->>類與對象