我一直无法从另一个类访问变量。以下是我的变量:
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);
}
}
}
但是当我这样做时,会出现错误。出于某种原因,第一类的变量不与第二类共享。
答案 0 :(得分:3)
如何从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
}
}
答案 1 :(得分:1)
使用表达式<img data-ng-src="C:/var/vci/images/fleetImages/{{img.imageName}}" data-ng-type="{{img.imageType}}"/>
访问这些全局变量。
我鼓励您继续学习面向对象的设计,这样您就可以理解为什么在创建对象并保护其中的数据时会更好。它被称为封装。
答案 2 :(得分:0)
要从其他类访问变量,请说A. 将变量调用到主类使用(classA的实例).varaibleName 在您的情况下,变量的相应类名称表示类A包含
<script type="text/javascript">
$(document).ready(function() {
$(window).keydown(function(event){
if(event.target.tagName != 'INPUT') {
if(event.keyCode == 13) {
event.preventDefault();
return false;
}
}
});
});
</script>
通过创建类的实例,如
public static byte agressivePoints = 0;
答案 3 :(得分:-1)
执行此操作的最佳方法是使用Variables类,其中包含所有变量,而在Correct_Answer类中,您只需调用
Static Variables v;
并且你想要调用的每个变量的前面都是c.VARIABLENAME;