簡體   English   中英

主要對象的方法

[英]methods of objects within main

是否可以在類中的方法中實例化一個對象,然后在main中使用實例化對象的方法之一? 我可以修復以下代碼嗎?

    public class Test {

    public void Testmethod()  {

        someclass a = new someclass();

    }

    public static void main(String[] args) {

        a.methodfromsomeclass(); 

    }

}

您需要解決三個問題:

1)您已經在Testmethod聲明a局部變量。 這意味着只能在Testmethod訪問它。 如果您希望一個變量即使在Testmethod執行完成后仍然可以使用,則應將其Testmethod Test的實例變量。 這意味着Test的實例將包含變量,並且Test實例方法( Testmethod除外)將能夠訪問它。

聲明實例變量看起來像這樣:

public class Test {
    private someclass a;  // please choose a better variable name
    //...... other code ..........//
}

2) main將無法訪問實例變量,因為main是靜態的。 您也不能使main非靜態; Java要求它是靜態的。 您應該做的是編寫一個實例方法(例如,稱為doMainStuff或更好的名稱),然后讓您的main創建一個新的Test對象,例如:

public void doMainStuff() {
     // something that calls Testmethod
     a.methodfromsomeclass(); // use a better name than "a"
     // other code
}

public static void main(String[] args) {
     new Test().doMainStuff();
}

3)到目前為止,您從未編寫過新的someclass ,因為您從未調用Testmethod 你需要確保你叫Testmethod您嘗試使用前a (它不會僅僅因為它出現在代碼中而被自動調用。您必須編寫調用它的代碼。)

另外,請遵守正確的命名約定:類以大寫字母( SomeClass )開頭,方法以小寫字母( testMethod )開頭,如果名稱包含多個單詞,則第二個單詞和后面的單詞以大寫字母開頭字母。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM