static用法 java,this為什么不能用在static的方法里?
java,this為什么不能用在static的方法里?靜態(tài)方法是存在于任何實(shí)例(對(duì)象)之前的類方法。也就是說(shuō),靜態(tài)方法在類加載時(shí)已經(jīng)存在,但是對(duì)象在創(chuàng)建時(shí)在內(nèi)存中生成。這是指當(dāng)前對(duì)象。在static方
java,this為什么不能用在static的方法里?
靜態(tài)方法是存在于任何實(shí)例(對(duì)象)之前的類方法。也就是說(shuō),靜態(tài)方法在類加載時(shí)已經(jīng)存在,但是對(duì)象在創(chuàng)建時(shí)在內(nèi)存中生成。這是指當(dāng)前對(duì)象。
在static方法中為什么不能使用this引用?
在javap-verb之后,代碼區(qū)域如下所示。請(qǐng)注意其中的參數(shù)。size參數(shù)表示方法的參數(shù)數(shù)。第一種方法是自動(dòng)生成的構(gòu)造方法,第二種方法是自定義的fun方法。fun方法沒(méi)有參數(shù),但參數(shù)的大小是1。此參數(shù)是引入的對(duì)象引用。也就是說(shuō),對(duì)于main類對(duì)象main,調(diào)用fun方法梅因。樂(lè)趣()。事實(shí)上,它相當(dāng)于fun(main),因此它相當(dāng)于局部變量表中的第一個(gè)空缺(注意構(gòu)造函數(shù)中的aload)0。這就是為什么不能在靜態(tài)方法中使用它。
static變量不能用this或super來(lái)調(diào)用,為什么可以用對(duì)象調(diào)用?
Statis properties and methods是類的屬性和方法,在實(shí)例化對(duì)象之前已加載。
這是指當(dāng)前對(duì)象,表示該對(duì)象已實(shí)例化并存在于內(nèi)存中。新對(duì)象不能調(diào)用靜態(tài)屬性或方法。靜態(tài)屬性或方法應(yīng)通過(guò)類名直接調(diào)用。
在Java中的main方法中可以使用this關(guān)鍵字嗎?為什么?
在Java中,類的方法主要有兩種形式,一種是類的實(shí)例方法,另一種是類的靜態(tài)方法。例如,以下Java類:
public class user{
private string name
public void setname(string name){這個(gè)名字
=name
}
public static void main(String[]args){
User User=new User()用戶名.setName(“Xiaoming”
}]setname方法是類的實(shí)例方法,主要方法是類的靜態(tài)方法。您可以看到setname方法可以使用這個(gè)類來(lái)訪問(wèn)類的instance字段。主要原因是:這表示類的對(duì)象實(shí)例本身。只有在實(shí)例化一個(gè)類(通過(guò)new)時(shí),才能在對(duì)象實(shí)例中使用它。類的靜態(tài)方法可以在沒(méi)有實(shí)例化的情況下使用,而這不能在沒(méi)有實(shí)例化的情況下使用。