java建構函式初始化的問題

時間 2021-08-30 09:32:14

1樓:

class testperson

public static void main(string args)

}參考一下

2樓:紫風影殺

3行建構函式外面的age是類的成員變數,6行建構函式內的按格式建構函式的變數,是一個局域變數,8行輸出的是6行的那個age;9行輸出的是類的成員變數age,而類的成員變數age沒有賦初值,預設初值為0;

3樓:匿名使用者

第一個age 是呼叫的區域性變數 第2個和最後一個實際上都是呼叫的全域性變數 預設值為0.當然 this.age最好不要這樣用 this 一般代表當前

4樓:任好慕

第一個0是this.age值,建議再主機看一下this的用法,此處使用的this,是調的構造方法之上的那個變數;

第二 0是pl.age值 , pl是例項,pl.age調的是類裡的變數age,不是構造方法裡的age.

5樓:李巖

建構函式 中

println(age) 輸出的是上邊定義的 int age=10;(這個只是個區域性變數)

println(this.age) 輸出的是testperson中的age屬性的值,預設是0

main函式中的

println(p1.age)輸出的也是p1物件中的age屬性的值,因為你沒有對其進行賦值,所以還是0

如果你想在建構函式中對age進行初始化的話就要寫 this.age=10;

6樓:

類變數和區域性變數你沒有分清楚

7樓:

給你解釋一下後面2個0。 第一個0是system.out.

println(this.age); 這句輸出的。this這個關鍵字呼叫的就是類的成員變數, 也就是你**裡面第三行的age 到於第6行的age你可以理解成建構函式的區域性變數,在建構函式裡面輸出age那就是它本身的age所以是10, 第九行輸出的this.

age就是第三行的age.因為你沒賦值所以預設為0,然後 第二個0就是你第15行執行類的物件調本類的成員變數,也是調的第三行的age,因為沒賦值,所以就也是0

其實建構函式的初始化有兩種就以你這個為例

第一種public class testperson}第二種

public class testpersonpublic static void main(string args)}

8樓:同碧曼

構造器裡的int age=10寫成age=10

9樓:隔壁老王

不要誤導別人可以嗎,樓下的才是正解,你的成員變數和區域性變數都沒搞清楚,還有你把this.age和age的區別搞懂了再來回答可好?

10樓:24k君臨

這樣才是在建構函式裡初始化成員變數的做法

建構函式是用來初始化所定義的物件,如果類中沒有定義任何建構函式,則該類的對

不對,c 裡不寫類的建構函式時,編譯器會為類建立一個預設的建構函式,雖然這個函式什麼都不做,但是類的物件還是會在此時初始化,不過,物件成員的值是隨機的,比如,指標型成員變數可能為null,也有可能不為null。 no如果使用者不提供建構函式,那麼編譯器就會自動合成一個預設建構函式 除非自定義一個私有...

行動硬碟初始化問題,行動硬碟初始化問題

應該是磁碟有壞道吧,該磁碟應該是不注意摔到了吧,如果更換不了,在mhdd下檢測一下壞道,我的行動硬碟和你遇到的毛病差不多 希望對你有所幫助 提示格式化就是說明這個硬碟分割槽出現的問題,一般都是強拔插或者壞道造成的,即使資料不重要也不一定是格式化後就可以好的。鑑於你資料比較重要,建議你直接找專業機構來...

C winform panel 畫筆初始化問題

load的時候窗體還沒出現,所以不能畫圖。c 中關於panel控制元件的graphics繪圖 c 如何清空panel中用graphics畫的圖 5 c winform中如何控制panel的大小?c winform panel控制元件問題 panel控制元件的dock屬性設定為top.這一設定才能自動...