this可以在所有方法中使用 為什么this關(guān)鍵字不能出現(xiàn)在類方法中?
為什么this關(guān)鍵字不能出現(xiàn)在類方法中?靜態(tài)方法是存在于任何實例(對象)之前的類方法。也就是說,靜態(tài)方法在類加載時已經(jīng)存在,但是對象在創(chuàng)建時在內(nèi)存中生成。這是指當(dāng)前對象。Java中,在構(gòu)造方法里調(diào)用本
為什么this關(guān)鍵字不能出現(xiàn)在類方法中?
靜態(tài)方法是存在于任何實例(對象)之前的類方法。也就是說,靜態(tài)方法在類加載時已經(jīng)存在,但是對象在創(chuàng)建時在內(nèi)存中生成。這是指當(dāng)前對象。
Java中,在構(gòu)造方法里調(diào)用本類中的方法是不是可以省略this?
要解決這個問題,就要搞清楚施工方法和普通桿件法的區(qū)別。像這樣的()和super()方法稱為構(gòu)造方法。顧名思義,它們的功能是在JVM堆中構(gòu)建指定類型的對象。如果您在此窗體中調(diào)用兩個方法,則表示您已經(jīng)構(gòu)建了兩個對象。類似地,為了避免構(gòu)建兩個對象的問題,Java在編譯時對這種情況進(jìn)行了嚴(yán)格的檢查。用戶不能在同一方法中多次調(diào)用this()或super()。同時,為了避免對對象本身的操作,對象本身還沒有構(gòu)建成功(找不到對應(yīng)的對象),因此只能在構(gòu)造方法中調(diào)用this()或super(),以防止異常。在普通成員方法中,如果調(diào)用super()或this(),是否要重新創(chuàng)建對象?抱歉,Java不允許您這樣做是為了確保它自己的對象的合理性。
在Java中的main方法中可以使用this關(guān)鍵字嗎?為什么?
在Java中,類的方法主要有兩種形式,一種是類的實例方法,另一種是類的靜態(tài)方法。例如,以下Java類:
public class user{
private string name
public void setname(string name){這個名字
=name
}
public static void main(String[]args){
User User=new User()用戶名.setName(“Xiaoming”
}]setname方法是類的實例方法,主要方法是類的靜態(tài)方法。您可以看到setname方法可以使用這個類來訪問類的instance字段。主要原因是:這表示類的對象實例本身。只有在實例化一個類(通過new)時,才能在對象實例中使用它。類的靜態(tài)方法可以在沒有實例化的情況下使用,而這不能在沒有實例化的情況下使用。