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

Java:如何访问另一个类的变量,java,class,Java,Class,我有一个类GameScreen,它有一个类精灵的实例(我将实例命名为GameScrites)。在精灵中有一个第三类的实例,我把它命名为敌人 我的问题是,我可以从GameScreen访问敌人中的变量吗? 我可以键入游戏精灵.敌人.变量名称吗? 我可以为两个以上不同的类继续这样做吗?在Java世界中,不建议这样做。您可以通过objectName.memberName进行访问,因为您的成员属性是公共属性。作为惯例,我们通常保持成员的私有性,并使用getter和setter来访问值 回到你的问题上来,你

我有一个类GameScreen,它有一个类精灵的实例(我将实例命名为GameScrites)。在精灵中有一个第三类的实例,我把它命名为敌人

我的问题是,我可以从GameScreen访问敌人中的变量吗? 我可以键入游戏精灵.敌人.变量名称吗?
我可以为两个以上不同的类继续这样做吗?

在Java世界中,不建议这样做。您可以通过objectName.memberName进行访问,因为您的成员属性是公共属性。作为惯例,我们通常保持成员的私有性,并使用getter和setter来访问值


回到你的问题上来,你可以通过这种方式访问任何级别,因为每个成员都是公开的。比如说,gameSprites.friends.enemy1.enemy1Army.solder1在gameSprites类中是公共的、enemy1在friends类中是公共的等情况下也是可能的。

这确实是任何OOP语言的非常基本的东西。在我看来,你应该花一些时间研究那些基本的东西,否则当你从这个问题出发时,你很有可能会陷得更深。然而,下面是一个如何从另一个类访问另一个类的变量的示例。

如果您的变量是私有的,则需要使用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;
    }
}
在这个精灵类中,就像你的要求一样,我创建了一个实例

package com;

public class Sprites {

    public Sprites(){};
    Enemies enemies = new Enemies();
}
这是虚拟游戏屏幕类

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

所以,您试图实现的目标可以针对公共变量和静态变量完成(不鼓励这样做)。对于private,您需要有一个公共方法来访问该变量。

如果存在类“敌人”的公共属性,则可以访问该变量。但你做得不对。您应该将这些属性设置为私有,然后创建公共方法(getter/setter)来访问这些对象的属性。

您遇到了什么错误?