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」,可以隨意轉載,但必須在明確位置註明出處!