[英]How do you access variables from different classes in Java?
我一直無法從另一個類訪問變量。 這是我的變量:
public static byte agressivePoints = 0;
public static byte peacefullPoints = 0;
public static byte meanPoints = 0;
public static byte happyPoints = 0;
public static byte sadPoints = 0;
我把它們放在我的主課堂之外。 在這個類中,我想從其他類中訪問這些變量以將它們放在這個類中。
public class Check_Anwser {
public static void Check_Answer(int Input) {
boolean TryAgain = false;
do {
switch (Input) {
case 'a': {
++agressivePoints;
break;
}
case 'b': {
++sadPoints;
break;
}
case 'c': {
++meanPoints;
break;
}
case 'd': {
++peacefullPoints;
break;
}
case 'e': {
++happyPoints;
}
default: {
System.out.println("You have entered an invalid anwser. Please try again");
}
}
} while (TryAgain != true);
}
}
}
但是,當我這樣做時,有一個錯誤。 出於某種原因,第一類中的變量不與第二類共享。
如何從Java中的不同類訪問變量?
如果另一個類的變量(或成員)是非靜態的。 您可以創建該類的實例(對象)並訪問其變量,例如:
class Warrior
{
private int strength;
public int getStrength(){
return this.strength;
}
}
class TestRunner{
public static void main(String[] args){
Warrior w = new Warrior();
w.getStrength(); //Access to strength of warrior via a Warrior object
}
}
如果該成員是公開的,您將能夠直接訪問它,如:
w.strength;
但是當你學習封裝和數據保護的概念時,你會發現我們通常會嘗試將實例變量設為私有。
對於靜態成員,它們屬於類而不是單個對象。 因此鼓勵您通過類名訪問它們,例如:
class Warrior{
public static final int SPEED; //let say speed for all warriors are unified
}
class TestRunner{
public static void main(String[] args){
int speed = Warrior.SPEED; //Access a class variable via the class name
}
}
使用表達式Main.aggressivePoints
來訪問這些全局變量。
我鼓勵您繼續學習面向對象的設計,這樣您就可以理解為什么在創建對象並保護其中的數據時會更好。 它被稱為封裝。
要從其他類訪問變量,請說A將變量調用到主類中使用(classA的實例).varaibleName在您的情況下,對應的變量類名稱說類A包含
public static byte agressivePoints = 0;
通過創建類的實例
A inst =new A();
++inst.agressivePoints;
執行此操作的最佳方法是使用Variables類,其中包含所有變量,而在Correct_Answer類中,您可以簡單地調用
Static Variables v;
你希望調用的每個變量都面向c.VARIABLENAME;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.