構造器的名稱必須保持和類名完全一緻,包括大小寫;
構造器預設沒有修飾符,或者使用 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」,可以随意轉載,但必須在明确位置注明出處!