Java:如何访问另一个类的变量

时间:2015-04-21 04:28:52

标签: java class

我有一个类GameScreen,它有一个Sprites类的实例(我已经命名了实例gameSprites)。在Sprites中有一个第三类的实例,我将它命名为敌人。

我的问题是,我可以从GameScreen访问敌人中的变量吗? 我可以输入gameSprites.enemies.variableName吗? 我可以继续两个以上不同的课程吗?

4 个答案:

答案 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)以访问这些对象的属性。