我一直无法从另一个类访问变量。这是我的变量:
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);
}
}
}
但是当我这样做的时候,出现了一个错误。由于某种原因,第一个类的变量不与第二个类共享。
最佳答案
How do you access variables from different classes in 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;
但是当你了解封装和数据保护的概念时,你会意识到通常我们会尝试将实例变量设为私有(private)。
至于静态成员,它们属于类而不是个别对象。因此,我们鼓励您通过类名访问它们,例如:
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
}
}
关于java - 在 Java 中如何访问不同类的变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35161586/