一、this
1、定義:this是一個關鍵字,存儲了當前對象的內存地址。
- this對象,用來訪問本類自己的屬性和方法。
- 構造器中,給屬性set值。
2、使用本類的屬性 ,this.屬性名, this可以省略不寫。
3、 調用本類的方法 this.方法名() ,this可以省略不寫。
4、 調用本類的構造方法, 要求必須是構造方法中的第一句代碼:
- this()調用本類的無參構造方法;
- this(實參列表)調用本類的帶參構造方法。
5、當局部變量與成員變量名稱相同時,this代表成員變量。
詳解見鏈接:https://www.cnblogs.com/vole/p/11866053.html
二、continue
跳出本次循環繼續下一次循環;
三、break
跳出循環體,繼續執行循環外的函數體;在switch...case中終止與下一個case的比較;
四、return: 跳出整個函數體,函數體後面的部分不再執行。
五、final
1、修飾類
final修飾的類不能被繼承,其中的屬性可以自由定義類型,但是其中的方法默認被final,不能修改。(除非真的不想其被繼承,出於安全問題,一般不設置爲final);
2、修飾方法
如果只有在想明確禁止該方法在子類中被覆蓋的情況下才將方法設置爲final的。
3、修飾屬性
基本數據類型:值不能被修改,固定值。
引用數據類型:在棧內存中的存儲的地址不變。
對於一個final變量,如果是基本數據類型的變量,則其數值一旦在初始化之後便不能更改;如果是引用類型的變量,則在對其初始化之後便不能再讓其指向另一個對象。如果對象用final修飾,可以改變其屬性值。
4、爲什麼要將某個方法聲明爲final呢?(參考java編程思想)
正如前一章提到的那樣,它可以防止其他人覆蓋該方法。但更重要的一點或許是:這樣做可以有效地“關閉”動態綁定,或者說,告訴編譯器不需要對其進行動態綁定。這樣,編譯器就可以爲final方法調用生成更有效的代碼。然而,大多數情況下,這樣做對程序的整體性能不會有什麼改觀。所以,最好根據設計來決定是否使用final,而不是出幹試圖提髙性能的目的來使用final。
六、static
1、方便在沒有創建對象的情況下來進行調用(方法/變量)
2、加上該關鍵字就爲靜態的方法或靜態的類;不加static的爲成員變量,實例變量;
3、爲什麼 static方法,無法使用非static 的屬性或方法?
答:因爲static修飾的方法或成員方法,是在類加載到內存時,一同加載進來的非static的屬性或方法是在創建對象時加載到內存的。
4、很多時候會容易把static和final關鍵字混淆,static作用於成員變量用來表示只保存一份副本,而final的作用是用來保證變量不可變。
關鍵詞及內部類可以參看鏈接:https://www.cnblogs.com/dolphin0520/p/3736238.html。海子博文中解釋的比較詳細。
七、abstract
抽象類中可以編寫構造方法,它的構造方法是爲了給子類提供調用的了,目的是創建子類對象。
各子類共有的方法,但是各子類中有各自不同的實現時,需要將方法聲明爲抽象方法。
八、super
1、super只是一個關鍵字,這個關鍵字,只能出現在子類中,代表父類對象。
2、使用父類的非private屬性 super.屬性名。
3、使用父類的非private方法 super.方法名()。
4、調用父類的構造方法 super(), super(實參列表),必須是子類構造方法中第一句代碼。
5、創建子類對象時,一定會調用父類的構造方法,如果不指定,默認調用父類的無參構造方法,相當於super()省略不寫了。
- 注意:可以知道,super就是子類和父類的一個連接的紐帶,且創建子類對象,必然調用父類的構造方法。
- 思考:子類可以不調用父類的構造方法嗎?默認子類的構造方法必須調用父類的構造方法嗎?是的,必定會調用。
6、當父類提供的方法,不能滿足子類的需求的時候,子類可以重寫父類的方法;子類重寫的父類方法訪問權限必須大於等於父類方法的訪問權限(如果父類中的方法是private 的,那麼子類是不能繼承的)。
7、父類中有屬性,有方法,構造方法,靜態方法?子類可以繼承什麼呢?
答:子類可以繼承父類非私有的屬性,非私有方法。
8、構造方法不可以被子類繼承,也不可以被子類重寫,但是可以被子類調用,使用super關鍵字調用。
9、父類的靜態方法,是不能被子類繼承的,也不可以被子類重寫。
10、一個類沒有顯示繼承另外的一個類,那麼這個類就繼承Object類。