簡體   English   中英

需要在靜態和非靜態方法中使用實例

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

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