this是指向物件本身的乙個指標。this只能在類中的非靜態方法中使用,靜態方法和靜態的**塊中絕對不能出現this。
1.呼叫本類的構造方法
1)說明:僅僅在類的建構函式中呼叫本類的其他建構函式。用法是this(引數列表)
,這一句必須處於建構函式的第一句,同時乙個建構函式內部只能呼叫另乙個建構函式
2)例子:
class a
public a(int b)
public a(string s)
}
2.表示類中屬性和方法
1)說明:用this來訪問類中的屬性和方法。比如函式引數或者引數中的區域性變數和成員變數同名的情況下,成員變數被遮蔽,此時要訪問成員變數則需要用」this.成員變數名」來訪問成員變數
2)例子:
class b
}
3.表示當前物件
1)說明:在函式中,需要引用該函式所屬類的當前物件時候,直接使用this
2)例子:
class c
public static void tell()
}
4.匿名類和內部類
1)說明:在匿名類或者內部類中用this時,這個this指的是匿名類或內部類本身。這時如果我們要使用外部類的方法和變數的話,則應該加上外部類的類名。
2)例子:
public class hello
};//這裡有分號
}}
super關鍵和this作用類似,是使被遮蔽的成員變數或者成員方法變為可見,或者說用來引用被遮蔽的成員變數和成員成員方法。不過super是用在子類中,目的是訪問直接父類中被遮蔽的成員,注意是直接父類(就是類之上最近的超類)。
1.在子類構造方法中呼叫父類的構造方法
1)說明:用super(引數列表)
的方式呼叫,引數不是必須的。同時,還要注意super(引數列表)
這條語句只能在子類構造方法中的第一行
2)例子:
class a
}class b extends a
}
2.訪問父類中被覆蓋的同名變數或者方法
1)說明:當子類方法中的區域性變數或者子類的成員變數與父類成員變數同名時,也就是子類變數覆蓋同名父類變數時,可以使用super.成員變數名
引用父類成員變數。同時,若子類的成員方法覆蓋了父類的成員方法時,也可以使用super.方法名(引數列表)
的方式訪問父類的方法。
2)例子:
class a
}class b extends a
public void tell()
}
java中this關鍵字
1 this 關鍵字 疑問 建立的p 物件為什麼沒有值。解答 name 與age 在指定的建構函式裡面已經存在,當name name 這個語句執行的時候,如果jvm 在該方法內能尋找到該變數,則不會去尋找成員變數,那麼要想指定給成員變數或物件的屬性進行初始化賦值,那麼必須指定name 是成員屬性。1...
static關鍵字 java關鍵字
先按照宣告順序初始化基類靜態變數和靜態 塊,接著按照宣告順序初始化子類靜態變數和靜態 塊,而後按照宣告順序初始化基類普通變數和普通 塊,然後執行基類建構函式,接著按照宣告順序初始化子類普通變數和普通 塊,最後執行子類建構函式。import static com.test.test1.fu.say i...
Java中的關鍵字
abstract 抽象的 continue 繼續 for 當 的時候 new 新建 switch 轉換 assert 斷言 default 預設 if 如果 package 打包 synchronized 同步 boolean 布林 do 做 goto 跳轉到 private 私有的 this 這個...