Java關鍵字淺析——final、static、this、super

在此之前,我們先來說一下訪問修飾符:

  • private:在同一類可見。
  • default:在同一包可見,不使用任何修飾符。
  • protected:對同一包的類和所有子類可見。
  • public:對所有類可見

final關鍵字
用於修飾類、屬性和方法;

  • 被final修飾的類不可以被繼承。
  • 被final修飾的方法不可以被重寫。
  • 被final修飾的變量不可以被改變,被final修飾不可變的是變量的引用,而不是引用指向的內容,引用指向的內容還是可以改變的。

final,finally,firalize的區別:

  1. final可以修飾屬性、方法和類。
  2. finally一般作用在try-catch中,在處理異常的時候,通常我們將一定要執行的代碼方法放在finally中,表示不管是否出現異常都需要執行。
  3. 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、引用父類的構造方法。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章