1. 程式人生 > >Java 學習筆記 5

Java 學習筆記 5

構造器的名稱必須保持和類名完全一致,包括大小寫;

構造器預設沒有修飾符,或者使用 public、private、protected 進行修飾,但是不能使用 static、final、synchronized、abstract 等進行修飾;

構造器沒有返回型別,void 也不行;

不接受任何引數的構造器叫做預設構造器,它的修飾符是 public,內容為空;

每個類至少要有一個構造器,如果一個類沒有顯式定義構造器,Java 會提供一個預設構造器;如果有明確定義構造器,就不會有預設構造器了(除非顯示定義的構造器和預設構造器是一樣的);

不同的構造器可以通過引數不同來進行區分,方法如果被過載也一樣可以通過引數不同進行區分,另外方法的過載還可以通過返回值來進行區分;

class GouZaoQiOne {
    String testStr;

    /**
     * 構造器名稱包括大小寫必須和類名保持一致;     
     * 構造器預設沒有修飾符,或者使用 public、private、protected 進行修飾,     
     * 但是不能使用 static、final、synchronized、abstract 等進行修飾;     
     * 構造器沒有返回型別,void 也不行;     
     * @return
     */
    GouZaoQiOne() {
        System.out.println("This is a default(friendly) GouZao method"
);    }    //不同的構造器可以通過引數不同來進行區分    GouZaoQiOne(String str) {        System.out.println("This is a new GouZao method with param");    } }

this 關鍵字只能在方法內部使用,表示正在執行方法的類的例項物件;

構造器中也可以使用 this,他指向同一個物件中不同引數的另一個構造器;

this呼叫其他構造器時,程式碼必須放到第一行,否則會編譯錯誤;

只能使用 this 呼叫一次其他的構造器;

static 方法不可以使用this物件,因為靜態方法不屬於類的例項物件;

物件可能不被垃圾回收;

垃圾回收並不等於"析構";

垃圾回收只和記憶體有關;

finalize() 呼叫並不會立馬觸發垃圾回收,而是在下次垃圾回收器幹活時會首先呼叫 finalize() 方法;

如果程式呼叫了非 Java 程式的原生代碼,可能需要在 finalize( 方法中呼叫釋放操作;

幾種觸發垃圾回收器的方法是: 主動呼叫 System.gc(); 讓程式佔用大量記憶體; 程式退出;

變數初始化順序由其定義的先後順序決定,並且變數肯定在所有方法被呼叫之前被初始化,那麼其定義在方法的後面;

可變長引數列表定義格式:String... str , 同意義的還可以是 Obect[] obj;

    //String... 定義可變長引數
    public void testMethod(String... strings) {        
        for (String string : strings) {
            System.out.println(string);
        }
    }    

    //String[] 定義可變長引數
    public void testMethod2(String[] strings) {        
        for (String string : strings) {
            System.out.println(string);
        }
    }

列舉型別關鍵字是 enum,比如 public enum Test {TEST1, TEST2}

 本文作者: sylan215

 本文地址: http://www.sylan215.com/

本文首發於公眾號「sylan215」,可以隨意轉載,但必須在明確位置註明出處!