1
A
回答
4
我認爲他們的意思是,這是合法的:
public class Test {
private int someValue;
public int myMethod() {
return someValue + anotherValue;
}
private int anotherValue;
}
(它是!)
不過,我認爲這是該網站一個錯誤來形容這爲「 [i] nstance變量可以在使用之前或之後在課程級別聲明「。
短語「在課堂上聲明」是不好的英語語法。
短語「在課堂上」是不明確的。它可能意味着在課堂上宣佈。然而,它也可能意味着宣佈爲「班級」(即
static
)變量。(這是矛盾的,不正確的,但...)短語「在使用之前或之後」是不明確的。這可能意味着在源代碼文件之前或之後。它也可能意味着在時間意義之前或之後。 (這是不正確的。在運行時,所有對象的實例變量的聲明,並在方法或構造函數體的代碼被執行之前進行初始化。)
雖然他們正試圖說些什麼(我認爲)在這句話中是正確的,他們已經表達得很差,而且這顯然造成了一些讀者的困惑。
0
實例變量val
在行#2中聲明(請注意標記),但在第#1行之前引用。您可以刪除第3行和第2條評論的評論。那麼它也會工作。
這意味着變量val
即使在申報之前在行#1考慮使用之後考慮使用,如果你考慮3號線#1行。
public class prog{
//private int val; //line# 3
public int getVal()
{
return val;//line# 1
}
private int val; //line# 2
prog()
{
val=0;
}
public static void main(String [] args)
{
prog obj= new prog();
System.out.println("val:"+obj.getVal());
}
}
0
儘管您的參考文檔很好地解釋了它,但我會添加一些細節以確保完整性。
一個實例變量...
- 是宣佈類級別
- 可以有任何的可見性是必要(
public
,protected
,private
,或者沒有修飾符來表示包-private) - 實例化後會收到initial value(也就是說,你沒有有實例化字段的值...但是,如果你不實例化一個參考值,你可能會碰到一個
NullPointerException
)
「前或使用後」這句話並沒有太大的意義,但讓我們說明一個場景:
public class Foo {
private String word;
public void printTheWord() {
System.out.println(word);
}
}
word
沒有實例,但因爲它是收到的null
的初始值,我們可以使用它。這意味着我們不會得到我們想要的價值,但它會編譯。
將此與局部變量進行對比。下面的代碼不會編譯,因爲word
尚未實例化。
public class Foo {
public void printTheWord() {
String word;
System.out.println(word);
}
}
0
短語「使用前後」。將意味着實例變量適用於整個類,不像局部變量那樣僅限於該方法內部。
它可以在課程開始時聲明或初始化,這通常是最可能的方式。 其他的,在類的內部,可以在使用它的方法的調用之後聲明。
請找到下面的代碼片段,瞭解了一句:
public class InstanceVariable {
//declared before
int foo=4;
public void testInstanceVariableUse(){
System.out.println("The total value of the instance variable is "+ (foo+boo));
}
//declared after
int boo=5;
}
class TestInstanceVariable{
public static void main(String[] args){
InstanceVariable instanceVar = new InstanceVariable();
instanceVar.testInstanceVariableUse();
}
}
輸出: 實例變量的總價值爲9
相關問題
- 1. 在聲明局部變量var後,實例變量變爲不可見
- 2. 可以在枚舉聲明中修改實例變量嗎?
- 3. Objective-C中實例變量聲明的順序是否重要?
- 4. 匿名內部類:聲明爲實例變量VS創建於
- 5. 是否可以使用search.luceneSearch與以前聲明的變量?
- 6. 是否可以檢測函數中聲明的局部變量的數量?
- 7. 實例變量聲明的放置
- 8. 是否可以在條件中聲明變量?
- 9. 是否可以強制JavaScript在使用前聲明變量?
- 10. 是否可以在聲明後初始化最終變量..?
- 11. (XQuery/Conditions)是否可以在if語句中聲明變量?
- 12. 是否可以從外部修改類實例的私有變量?
- 13. 獲取在類中聲明的所有實例變量
- 14. 是否可以刪除使用const聲明的變量?
- 15. 是否可以從內部類實例訪問一個外部類實例?
- 16. 差異如何聲明實例變量
- 17. 屬性和實例變量聲明
- 18. 聲明驗證阻止實例變量
- 19. 我是否在ObjC的.h文件中聲明瞭所有的實例變量?
- 20. C++修改實例變量聲明在父類
- 21. 是否可以使用循環來聲明變量?
- 22. Excel - 是否可以爲特定單詞聲明變量?
- 23. 將IBOutlet放入實例變量聲明或@property聲明中?
- 24. 瞭解類和實例變量的屬性聲明
- 25. do-while在底部聲明
- 26. 在局部變量聲明語句中,在塊聲明中,聲明語句的哪個部分是聲明符?
- 27. iPhone,存取陣列,局部聲明隱藏實例變量
- 28. 是否有可能將已在類中聲明的實例全局化?
- 29. 是否可以在Puppet中「聲明」?
- 30. 我可以在Java中更改變量的聲明類型嗎?
這是合法的,但我仍然會如果有人叫警察在我的團隊中做到了。 –