簡體   English   中英

如何從 Java 中的其他類調用變量?

[英]How do I call variables from other classes in Java?

我目前正在重新制作我使用 OOP 開發的一款基於文本的 RPG 游戲。 我想知道如何從其他類調用變量。 目前,我的程序給了我一個錯誤,因為它無法解析符號“playerHealth”,因為它在另一個類中。 我在下面的類是 BattleSequence 類,我想稱為“playerHealth”的變量在 Player 類中。 我該怎么做呢?

public class BattleSequence {
    public static void main(String agrs[]) {
        System.out.println("Welcome to the dungeon!");
   
        while (playerHealth > 0) {
            System.out.println("---------------------------");
        }
    }
}

您沒有在這里展示您的其他課程,但我假設您正在嘗試執行以下操作:

public class SomeClass
{
   public int playerHealth = 10; // Or some number
}

public class BattleSequence {
    public static void main(String agrs[]) {
        System.out.println("Welcome to the dungeon!");
   
        while (playerHealth > 0) {
            System.out.println("---------------------------");
        }
    }
}

為此,您必須實際創建SomeClass的實例:

public class BattleSequence {
    public static void main(String agrs[]) {
        System.out.println("Welcome to the dungeon!");

        SomeClass myClass = new SomeClass();
   
        while (myClass.playerHealth > 0) {
            System.out.println("---------------------------");
        }
    }
}

這是一個類比:假設您想吃一些巧克力餅干。 你絕對不能只看食譜然后拿一些 - 你實際上必須使用食譜來制作一些餅干。 我在這里稍微簡化了一點(例如,通過忽略靜態變量),但這基本上是類的工作方式 - 類本身並沒有真正任何事情。 它們只是制作物體的“配方”。 在您實際創建對象之前,類中的變量實際上並不存在。

一些快速說明:您可能需要考慮使用getter 和 setter,而不是直接訪問該字段。 此外,您顯然希望使用比我在這里使用的SomeClassmyClass更有意義的名稱。 選擇對你的程序有意義的東西,而不是我使用的通用名稱。

您可以為您的變量創建一個 getter 或將其<class-name>.playerHealth靜態並像<class-name>.playerHealth一樣訪問它

暫無
暫無

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

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