[英]how to use instance variables in a static method
我在Java中遇到問題。
我是Java的新手,所以不要怪異的代碼和東西。
我正在制作一個小型的Thymymabob,它會隨機生成數字,並使用它們來創建有關隨機生成的樹(由該信息概述)的信息。
問題是,我需要制作一個靜態void來打印樹的統計信息。
但是我所有的變量-“ treeheight”,“ treetrunkwidth”等-都不是靜態的,或者每條變量信息都恢復為0或null。 這很煩人,因為如果我將打印樹狀統計信息的時間設為非靜態,則不會顯示出來,但是如果我將其設為靜態,則不會讓樹的信息隨意生成和隨意更改。
我該怎么辦??
-AndeX
就如此容易
1:可以通過類引用訪問靜態成員
ClassName.staticVar
2:非靜態成員可以通過實例引用進行訪問
new CLassName()
現在,如果您可以發布您的代碼,我們可以給出確切的建議
在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...
}
我認為您正在尋找的是Java Singleton Class
。 我建議您在這里查看更多信息
這將意味着您將只有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();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.