[英]Need to use instance in static and non-static methods
我正在做一個小文字游戲。 開始對話是在我的主要(靜態)方法中。 從那里,它會根據您的選擇將您帶到其他方法。
現在我想我需要一個類的實例才能起作用。
例如:
Program p = new Program();
if(stuff){
p.room1();
}
else{
p.room2();
}
在其他方法中,全局變量將發生變化。
因此,在主要方法之上有:
public bool hasItem = false;
所以room1()看起來像
public void room1(){
if(stuff){
p.hasItem = true;
}
}
我知道我在用主要方法搞砸了。 我是在main方法內部還是外部聲明實例“ p”? 我都嘗試過,但是都遇到錯誤。
編輯:我最終在主要方法之外聲明了一個靜態“程序”,以在其他地方使用。 謝謝您的幫助!
首先,根據您的體系結構,您可以在main方法外部創建一個靜態Program
,或者在main方法內部聲明一個程序。
其次,您不必從實例方法中引用實例。 只需使用字段名稱。 像這樣:
public void room1(){
if(stuff){
hasItem = true;
}
}
如果您想明確地使用它,可以使用this.hasItem
。
或者更好的方法是,創建一個全新的類來保持您的狀態。在類中使用main方法的實例成員是笨拙的設計。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.