java - 在 Java 中如何访问不同类的变量?

标签 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);
    }
}
}

但是当我这样做的时候,出现了一个错误。由于某种原因,第一个类的变量不与第二个类共享。

最佳答案

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/

相关文章:

java - 根据 XMLSchema.xsd 验证 XML 架构

java - 线性搜索错误且 arrayBound 异常

java - 在递归对象上实现 equals 和 hashCode (JPA @ManyToMany)

java - 根据 Eclipse 中通过 JAXB 和 XSD 构建选项生成的 xsd 文件验证 xml

java - 调用长时间运行的 Java 方法时,Coldfusion 会遇到 java.net.SocketTimeoutException

java - 使用 Hibernate 注释将外部键作为主键的一部分

java - 输出不打印到txt文件Java

java - GWT - 如何为 Window ResizeHandler 设置初始条件

java - RMI - JRMP 与 IIOP

java - 方法内类加载器的上下文