在此之前,我們先來說一下訪問修飾符:
- private:在同一類可見。
- default:在同一包可見,不使用任何修飾符。
- protected:對同一包的類和所有子類可見。
- public:對所有類可見
final關鍵字
用於修飾類、屬性和方法;
- 被final修飾的類不可以被繼承。
- 被final修飾的方法不可以被重寫。
- 被final修飾的變量不可以被改變,被final修飾不可變的是變量的引用,而不是引用指向的內容,引用指向的內容還是可以改變的。
final,finally,firalize的區別:
- final可以修飾屬性、方法和類。
- finally一般作用在try-catch中,在處理異常的時候,通常我們將一定要執行的代碼方法放在finally中,表示不管是否出現異常都需要執行。
- finalize是一個方法,屬於Object類的一個方法,該方法一般由垃圾回收器來調用,當我們調用Systom.gc()方法的時候,由垃圾回收器調用finalize()方法回收垃圾。
static關鍵字
static主要意義:創建獨立於具體對象的域對象或者方法。以致於即使沒有創建對象,也能使用屬性和調用方法。
還有一個比較關鍵的作用就是 用來形成靜態代碼塊以優化程序性能。
static塊的特點:只會在類加載的時候執行一次。
static的應用場景:如果某個成員變量是被所有對象所共享的,那麼這個成員變量就應該被定義成靜態變量。
this關鍵字
this是自身的一個對象,代表對象本身,可以理解爲:指向對象本身的一個指針。
this的用法大體分爲3種:
1、普通的直接引用,this相當於是執行當前對象本身。
2、形參與成員名字重名,用this來區分。
public Person(String name){
this.name=name;
}
3、引用本類的構造方法。
class Person{
private String name;
private String age;
public Person(String name){
this.name=name;
}
public Person(String name,String age){
this(name);
this.age=age;
}
}
super關鍵字
super可以理解爲指向自己超類的一個指針。(超類表示 離自己最近的一個父類)
super三種方法:
1、普通的直接引用
super.XXX //引用父類的成員
2、子類中成員變量或方法與父類中成員變量或者方法重名時,用super區分。
class Teacher{
String name;
public Teacher(String name){
this.name=name;
}
}
--------------------------------------------------------
class Student extends Teacher{
String name;
public Student(String name,String name1){
super(name);
this.name=name1;
}
}
3、引用父類的構造方法。