簡體   English   中英

Java:如何訪問另一個類的變量

[英]Java: how do I access the variables of another class

我有一個GameScreen類,它有一個Sprites類的實例(我將實例命名為gameSprites)。 在《精靈》中,有一個第三類的實例,我將其命名為敵人。

我的問題是,我可以從GameScreen訪問敵人中的變量嗎? 我可以輸入gameSprites.enemies.variableName嗎? 我可以在兩個以上的不同班級繼續嗎?

如果您的變量是私有的,則需要具有公共方法才能訪問該變量。 假設我有這個假人

    package com;

public class Enemies {

    private final String name="HELLO";
    public final String names="This is public Variable";
    public static String name2="HELLO THIS IS STATIC";
    public Enemies(){};

    public String getName(){
        return name;
    }
}

在這里像您的要求的Sprites類中,我創建了Enemies實例

package com;

public class Sprites {

    public Sprites(){};
    Enemies enemies = new Enemies();
}

這是虛擬的GameScreen類

package com;

    public class GameScreen {
        public static void main(String...strings){
        Sprites gameSprites = new Sprites();
        System.out.println(gameSprites.enemies.names);
        String name=gameSprites.enemies.name2;// This is Highly Discouraged Approach
        System.out.println(name);
        System.out.println(gameSprites.enemies.getName());
        }
    }

和運行此代碼時的輸出。

This is public Variable
HELLO THIS IS STATIC
HELLO

因此,您可以嘗試為public和Static變量實現目標(不鼓勵這樣做)。 對於私有用戶,您需要具有公共方法才能訪問該變量。

在Java世界中,不建議這樣做。 您可以通過objectName.memberName訪問,因為您的member屬性是公共屬性。 按照慣例,我們通常將成員保持私有狀態,並具有用於獲取值的獲取器和設置器。

回到您的問題,假設每個成員都已宣布為公開,則可以以任何方式訪問該級別。 假設如果gameSprites類中的敵人是公開的,而敵人1類在敵人類中是公開的,gameSprites.enemies.enemy1.enemy1Army.solder1也是可能的。

對於任何OOP語言,這實際上都是非常基本的事情。 我認為,您應該花一些時間研究這些基本知識,否則很有可能在解決此問題時會進一步陷入困境。 但是,這是一個如何從另一個類訪問另一個類的變量的示例。 從另一個類訪問變量

如果存在“敵人”類的公共財產,則可能可以訪問。 但是,您的做法不正確。 您應該將這些屬性設為私有,然后創建公共方法(getter / setter)以訪問那些對象的屬性。

暫無
暫無

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

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