[英]Initialization of object in Java
我正在學習 Java 中的一些基本 OOP 概念。 考慮以下代碼片段:
class my_class{
int a;
public my_class() {
System.out.print(a+" ");
a = 10;
System.out.print(a);
}
}
class Main{
public static void main(String[] args) {
my_class my_object = new my_class();
}
}
以下代碼的輸出為: 0 10
根據我的理解:
my_class
是類的名稱my_object
是我正在創建的對象的引用new
運算符分配內存並返回它的地址,該地址存儲在my_object
my_class()
是構造函數,它使用默認值 0 初始化對象的字段,然后為其分配 10現在考慮代碼:
class my_class{
final int a;
public my_class() {
a=10;
System.out.print(a);
}
}
class Main{
public static void main(String[] args) {
my_class my_object = new my_class();
}
}
根據我之前的理解,它應該創建my_object
字段final int a
設置為默認值 0,該值應該是不可更改的,並在a=10;
處標記錯誤a=10;
但它可以工作並打印輸出: 10
我哪里錯了?
您可以初始化任何final
一次場,無論是在構造函數(即,每個構造一次),或在其聲明。
(值得注意的是,如果您希望構造函數的參數在最終變量的值中起作用,則必須在構造函數中對其進行初始化——否則最終變量將毫無用處!)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.