gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 04:51:51 24 4
gpt4 key购买 nike

我一直无法从另一个类访问变量。这是我的变量:

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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com