我在Java中遇到了问题 我是Java的新手,所以不要怪我奇怪的代码和东西。
我正在制作一个随意生成数字的小东西,并使用它们来创建有关该信息概述的随机生成树的信息。
问题是,我需要创建一个静态void来打印树的统计数据。
但我所有的变量 - “treeheight”,“treetrunkwidth”等 - 都不能是静态的,或者每个变量信息都会恢复为0或null。这很烦人,因为如果我打印我的空白打印树状态不是静态的,那么它就不会显示,但是如果我将它设置为静态,它就不会随意生成树的信息并随意更改。
我该怎么办?
-AndeX
答案 0 :(得分:1)
就像那个一样简单
1:可以使用类引用
访问静态成员ClassName.staticVar
2:可以通过实例引用
访问非静态成员new CLassName()
现在,如果您可以发布您的代码,我们可以给出确切的建议
答案 1 :(得分:0)
在Thingymabob里面你可以创建
public static void main(String[] argsIgnored) {
Thingymabob anInstance = new Thingymabob();
anInstance.doStuffToSetItUp()...
System.out.println("treeheight = " + anInstance.getTreeheight ());
System.out.println("treetrunkwidth = " + anInstance.getTreetrunkwidth ());
etc...
}
答案 2 :(得分:0)
我认为你要找的是Java Singleton Class
。我建议你look here for more information
这意味着您只有一个类Thingymabob
的实例,并且您可以像往常一样通过getters and setters
访问其属性。
这就是constructor
和getInstance
的样子:
private Thingymabob() {
// Exists only to defeat instantiation.
}
public static Thingymabob getInstance() {
if(instance == null) {
instance = new Thingymabob();
}
return instance;
}
然后您可以在所有其他类中访问它,如下所示:
Thingymabob thingy = Thingymabob.getInstance();