天天看點

javaSE的一些基本常識

一、static

1.static 定義的方法和屬性可以被其他方法調用。

2.static定義的方法和屬性不可以被非static的方法調用,包括static的main方法。

3.對象調用的方法可以在static定義的方法中。

4.main方法調用非static方法需要通過對象來調用。

5.this指的是調用方法的對象,哪個對象調用這個方法,this指的就是這個對象。

6.static相當于将屬性和方法執行個體化,變成了實際的東西,而非static的屬性和方法隻是一個虛拟的東西,必須通過執行個體化一個對象來執行個體化這些。

7.形參指的是建立方法時括号裡面的參數,實參指的是實際在調用方法的時候傳的參數值。

8.static方法不可以用this,因為它不屬于任何對象,但是可以通過對象來調用。

9.代碼塊在類中需要執行個體化,如果是在main方法中科院直接運作。

二、可變形參

public void method(int a, String ...pp){

System.out.println(pp[0]);

}

String ...pp 這個類型的參數放在最後,三點代表可變參數,pp指的是一個數組名字,最後放入的n個參數相當于存在數組pp中。

三、overload and override

overload:同一個類中,方法名字相同,形參個數不同,或者形參類型不同,傳回值不同無效,修飾符不同也是無效。

override:子類繼承父類,不想用父類的方法,然後自己重寫父類的方法,方法名字相同,傳回值相同或者比父類的小,權限比父類要大,子類抛出的異常要小于或者等于父類。

四、權限設定和一些包和構造器

1.default不需要使用任何修飾符,也有人叫friendly,權限是在同一個包内通路。

2.protected 是在同一個類裡面,還有它的子類,不能使用通路修飾符來修飾局部變量。

3.boolean的get方法不是get方法,而是isXXX。

4.如果有2個User方法,第一個可以通過導入包的形式來通路,而第二個不可以再次導包,是以直接com.xxx.xxx.User;

5.如果需要直接導入整個包的類,直接com.xxx.*;。

6.導入一個類的一個static成員,import static com.xxx.xxx.User.name;導入一個類的所有的static成員,import static com.xxx.xxx.User.*;。

7.java.lang包中包含了核心類,String System,系統會自動去導入這些包,還有一些其他的包,java.util,java.io,java.net,java.text,java.sql,java.awt,等等。

8.在一個構造方法中可以用this調用另一個構造方法

public Person(String x){

this.x=x;

}

public Person(String x,int y){

this(x);

this.y=y;

}

而且this(x)一定要放在第一位,需要調用一定要寫出來,不寫出來,就算是預設的構造方法也沒有用。

9.先執行父類的構造器再執行子類的構造器,可以使用super調用父類的方法。

10.Fruit fruit=new Apple(); fruit不可以調用子類獨有的方法,因為它是父類的引用,Apple xx=(Apple) fruit;這樣xx可以調用子類的方法了,因為這個引用已經轉化成為了子類的引用;父類對象不可以給子類,因為父類中的功能沒有子類多,不可以擴充。

11.Vehicle<---繼承----Car<----繼承-----BMW;在Vehicle中有static初始化塊,普通初始化塊,構造器;那麼他們的順序是:

Vehicle的static代碼塊------->Car的static代碼塊------->BMW的static代碼塊------->Vehicle的普通代碼塊-------->Vehicle的構造器------->Car的普通代碼塊-------->Car的構造器------->BMW的普通代碼塊-------->BMW的構造器。

繼續閱讀