Java 如何修改或获取已在其他类(stats)中创建的对象?
我想在更多类之间使用已经创建的对象 我想创建一个Stats类,它可以处理收/给钱等,但我认为这不是将其设置为静态(对象)的正确方法。我试着上其他的课,但在主课之外,它不起作用 这是统计类。构造函数、getter和setter是基本的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
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