我有一个类GameScreen,它有一个Sprites类的实例(我已经命名了实例gameSprites)。在Sprites中有一个第三类的实例,我将它命名为敌人。
我的问题是,我可以从GameScreen访问敌人中的变量吗?
我可以输入gameSprites.enemies.variableName
吗?
我可以继续两个以上不同的课程吗?
答案 0 :(得分:2)
如果您的变量是私有的,则需要使用Public方法来访问该变量。 假设我有你的这个虚拟敌人类
package com;
public class Enemies {
private final String name="HELLO";
public final String names="This is public Variable";
public static String name2="HELLO THIS IS STATIC";
public Enemies(){};
public String getName(){
return name;
}
}
在Sprites Class中就像你的要求我创建了Enemies实例
package com;
public class Sprites {
public Sprites(){};
Enemies enemies = new Enemies();
}
这是Dummy GameScreen Class
package com;
public class GameScreen {
public static void main(String...strings){
Sprites gameSprites = new Sprites();
System.out.println(gameSprites.enemies.names);
String name=gameSprites.enemies.name2;// This is Highly Discouraged Approach
System.out.println(name);
System.out.println(gameSprites.enemies.getName());
}
}
和运行此代码时的输出。
This is public Variable
HELLO THIS IS STATIC
HELLO
那么你想要实现的是public和Static变量(不鼓励这样做)。对于私有,您需要有一个公共方法来访问该变量。
答案 1 :(得分:0)
在Java世界中,它并不是真正推荐的。您可以通过objectName.memberName访问,因为您的成员属性是公共属性。作为一种惯例,我们通常会将成员保密,并使用getter和setter来访问这些值。
回到你的问题,你可以访问任何级别,因为每个成员都被公开。比方说,如果敌人在gameSprites类中公开,则敌人在敌人类中公开等等,也可以使用gameSprites.enemies.enemy1.enemy1Army.solder1。
答案 2 :(得分:0)
这是任何OOP语言的基本内容。在我看来,你应该花一些时间研究那些基本的东西,否则你很有可能在你解决这个问题时会陷入困境。但是,这是一个如何从另一个类访问其他类的变量的示例。 Accessing a variable from another class
答案 3 :(得分:0)
如果有类别"敌人"的公共财产,它可能是可访问的。但是你没有以正确的方式做到这一点。您应该将这些属性设为私有,然后创建公共方法(getter / setter)以访问这些对象的属性。