Java 如何修改或获取已在其他类(stats)中创建的对象?

Java 如何修改或获取已在其他类(stats)中创建的对象?,java,class,object,methods,Java,Class,Object,Methods,我想在更多类之间使用已经创建的对象 我想创建一个Stats类,它可以处理收/给钱等,但我认为这不是将其设置为静态(对象)的正确方法。我试着上其他的课,但在主课之外,它不起作用 这是统计类。构造函数、getter和setter是基本的 public class Stats{ int money; /**Constructor,Getter,Setter*/ static Stats stats = new Stats(0); } 在这里工作 public class Ma

我想在更多类之间使用已经创建的对象

我想创建一个Stats类,它可以处理收/给钱等,但我认为这不是将其设置为静态(对象)的正确方法。我试着上其他的课,但在主课之外,它不起作用

这是统计类。构造函数、getter和setter是基本的

public class Stats{
    int money;
    /**Constructor,Getter,Setter*/
    static Stats stats = new Stats(0);
}
在这里工作

public class Main{
    public static void main ( String[] args){
    Stats.stats.setMoney(500);
    System.out.println(Stats.stats.getMoney());
    }
}
这里Stats.Stats是彩色的,但不是方法

public class Shop {
    Stats.stats.getMoney();
}
我希望从任何类调用Class.object.method,即使该对象不是在该类中创建的

Stats.Stats是彩色的,但不是方法

public class Shop {
    Stats.stats.getMoney();
}
它可能无法解析
stats
,因为它的访问修饰符是包私有的。将其更改为
public
将使其可编译

即使对象不是在该类中创建的


实际上,对象
newstats(0)
是在类加载后创建的。如果没有,你会在主方法中得到一个NPE

我知道这可能不是你现在正在寻找的答案,但我想提一下,以防万一

正如你提到的

我想在更多类之间使用已经创建的对象

现在您可以使用静态类/方法/变量来完成您的工作,但不要忘记Java是OOP

静态成员是与类实例不关联的类的成员。相反,成员属于类本身

这允许您在不使用对象的情况下访问它们。如果过多地使用静态,就不会利用Java的实际特性,即对象和类

我可以在不使用static的情况下做与您尝试做的相同的事情。在java中,当创建一个对象时,它会保存数据在内存中的位置信息。像这样的

Dog tuffy = new Dog("tuffy","papillon",5, "white");

现在要将一个对象传递给另一个类,我所需要的就是传递那个地址,它将允许我操作数据/访问成员等等

主类

统计类

商店级

主要输出:

Stats Money: 1000
Shop Money: 1000

欲了解更多信息,请访问此网站

我仍然无法从商店类的统计中获得金钱,但我会阅读你给我的链接。谢谢。@DanutDp是否将引用保存在Shop类中的某个位置,以及将什么作为参数传递?
public class Shop {
    private Stats stats;

    public Shop(Stats stats) {
        this.stats = stats;
        // Now here using stats object you can do whatever you want
    }

    public int getMoney() {
        return stats.getMoney();
    }
}

Stats Money: 1000
Shop Money: 1000