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