![](/img/trans.png)
[英]Why can I assign to a variable declared after the initalizer, but not print it?
[英]Why can't we define (assign a value) a variable (field) after it is declared in a class?
在普通的 class 中,
public class MyClass {
int a =12;
}
工作正常。
但,
public class MyClass {
int a =12;
int b;
b=13;
}
這會產生編譯錯誤。
我知道我試圖在不使用 class 的 object 的情況下訪問字段,所以我什至嘗試了這個->
public class MyClass {
int a =12;
int b;
MyClass m= new MyClass();
m.b=13;
}
但即使這似乎也不起作用。
我可以接受這樣一個事實,事情就是這樣運作和繼續前進的。 但是有人知道這背后的邏輯嗎?
先感謝您。
int a = 12;
這是一個帶有初始化的變量聲明。
b=13;
這是一項任務; 一份聲明; 它不能成為聲明的一部分。 它必須是構造函數或方法的一部分。
這就是 Java object 定義的工作原理。
您可以通過以下兩種方式之一執行此操作:
使用初始化塊如下:
int b; { b = 13; }
在構造函數中執行以下操作:
b = 13;
查看https://docs.oracle.com/javase/tutorial/java/javaOO/initial.html了解更多信息。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.