這次我們來看一下this、static、instanceof這三個關鍵字。
this關鍵字
1.通過 this 關鍵字可以明確地去訪問一個類的成員變量,對成員變量進行初始化,解決與局部變量名稱衝突問題。
class Person {
int age;
public Person(int age) {
this.age = age;
}
public int getAge() {
return this.age;
}
}
2.通過 this 關鍵字調用成員方法,當前引用調用類中的相應方法。
class Person {
public void openMouth() {
//實現過程
}
public void speak() {
this.openMouth(); // 此處this可以省略
}
}
3.通過 this 調用構造方法
①.只能在構造方法中,使用 this 關鍵字調用構造方法,不能在成員方法中使用,並且該語句必須位於第一行,且只能出現一次。
class Person {
public Person() {
System.out.println("無參的構造方法被調用了...");
}
public Person(String name) {
this(); // 調用無參的構造方法,必須位於第一行,且只能出現一次
System.out.println("有參的構造方法被調用了...");
}
}
②.不能在一個類中的兩個構造方法中使用 this 互相調用。
Class Person{
public Person(){
this("小芳"); // 調用有參的構造方法
System.out.println("無參的構造方法被調用了...");
}
public Person(String name) {
this(); // 調用無參的構造方法
System.out.println("有參的構造方法被調用了...");
}
}
static關鍵字
被static關鍵字修飾的方法一般被稱爲靜態方法,沒有被static關鍵字修飾的方法一般稱爲非靜態方法。
被static關鍵字修飾的成員變量叫靜態的成員變量,沒有被static修飾的成員變量叫非靜態成員變量。
靜態方法 只能訪問靜態的成員變量,無需創建對象,使用類名就可以直接調用。但是不能訪問非靜態成員變量。
靜態成員變量 也是無需創建對象,可以通過類名進行訪問。
非靜態方法 既能訪問靜態的成員變量,也能訪問非靜態的成員變量,只能通過創建對象的方式進行調用。
靜態方法和靜態成員變量被整個程序共用,相當於共享,所以被static修飾的內容,在代碼程序中會按照順序進行加載, 如果主函數在下面,那麼會優先加載靜態成員變量和靜態成員方法。還有就是被static修飾的關鍵字,都會優先加載。
還有一個就是靜態代碼塊,其在程序中只執行一次,被static關鍵字所修飾的內容是按照代碼的順序來進行調用的。
格式:
static{
代碼
}
instanceof 關鍵字
用於判斷對象是否屬於後面的類型,如果屬於則返回true,如果不屬於則返回false。格式如下:
if (a instanceof Cat) {
System.out.println(true);
}else{
System.out.println(false);
}