我的任務是製作一個帶有實例變量的程序,一個字符串,應該由用戶輸入。但我甚至不知道實例變量是什麼。什麼是實例變量?我如何創建一個?它有什麼作用?Java - 什麼是實例變量?
24
A
回答
52
實例變量是一個類的內部聲明的變量,但在方法外:是這樣的:
class IronMan{
/** These are all instance variables **/
public String realName;
public String[] superPowers;
public int age;
/** Getters/setters here **/
}
現在這個鐵人三項類可以在其他類中實例化以使用這些變量,如:
class Avengers{
public static void main(String[] a){
IronMan ironman = new IronMan();
ironman.realName = "Tony Stark";
// or
ironman.setAge(30);
}
}
這就是我們如何使用實例變量。更多有趣的東西在Java基礎知識here。
19
一個實例變量是一個變量,它是一個類的實例的成員(即與創建一個與new
創建的東西相關聯),而類變量是類本身的成員。
類的每個實例都有其自己的實例變量副本,而每個靜態(或類)變量只有一個與該類本身相關聯。
difference-between-a-class-variable-and-an-instance-variable
這個測試類說明差異
public class Test {
public static String classVariable="I am associated with the class";
public String instanceVariable="I am associated with the instance";
public void setText(String string){
this.instanceVariable=string;
}
public static void setClassText(String string){
classVariable=string;
}
public static void main(String[] args) {
Test test1=new Test();
Test test2=new Test();
//change test1's instance variable
test1.setText("Changed");
System.out.println(test1.instanceVariable); //prints "Changed"
//test2 is unaffected
System.out.println(test2.instanceVariable);//prints "I am associated with the instance"
//change class variable (associated with the class itself)
Test.setClassText("Changed class text");
System.out.println(Test.classVariable);//prints "Changed class text"
//can access static fields through an instance, but there still is only 1
//(not best practice to access static variables through instance)
System.out.println(test1.classVariable);//prints "Changed class text"
System.out.println(test2.classVariable);//prints "Changed class text"
}
}
+0
正確。你也可以將一個實例變量想象成一個對象中的「field」。一個相關的概念是封裝(見:private訪問修飾符,getter和setter ...) – vikingsteve
+0
事實上,我已經公開大多數公共事物以方便訪問,這通常是一個壞主意 –
相關問題
- 1. 什麼是實例變量?
- 2. 實例變量的目的是什麼?
- 3. 什麼是isa實例變量?
- 4. 什麼是變量的一個實例?
- 5. 實例變量是什麼?他們爲什麼如此重要?
- 6. 爲什麼實例變量未定義?
- 7. 實例變量和Java
- 8. 的Java在實例變量
- 9. Java訪問實例變量
- 10. Java中的實例變量
- 11. java listnode實例變量
- 12. 無法在main()方法中實例化字段(實例變量)。爲什麼?? Java
- 13. Java中的本地變量和實例變量有什麼區別
- 14. Android,實例化實例變量,什麼線程?
- 15. 'nameList'變量是一個實例變量還是類變量?爲什麼不包含在「同步(本){}」語句?
- 16. Bash變量$ _的用例是什麼?
- 17. 在java中說「實例變量沒有被覆蓋」是什麼意思?
- 18. Java中的枚舉類型實例變量的默認值是什麼?
- 19. 爲什麼可以在PHP中重寫實例變量而不是在Java中?
- 20. @synthesized實例變量的可見性是什麼?
- 21. 在Python中,實例變量前面的下劃線是什麼?
- 22. 實例變量未初始化。這是爲什麼?
- 23. Python:爲什麼不能描述符是實例變量?
- 24. 什麼是實例變量的正確命名約定?
- 25. 實例變量緩存的名稱是什麼?
- 26. 什麼是使用靜態和實例變量記錄
- 27. 爲什麼在這裏需要'self'而不是實例變量?
- 28. Java。靜態{實例=新實例();}這是什麼意思?
- 29. 爲什麼在Session_Controller中使用局部變量而不是實例變量
- 30. 什麼是Java中的影子變量?
http://docs.oracle.com/javase/tutorial/java/javaOO/classvars.html – Maroun