[英]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.