国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

java對象成員變量初始化順序

2019-11-14 15:36:18
字體:
來源:轉載
供稿:網友

對象成員變量指非static的變量,static的變量一般稱為類成員變量,它們伴隨著類的加載而初始化。

package com.juneny.foundation;public class InitSeqOfObj {	ForSeqOfObjTest f1 = new ForSeqOfObjTest("create obj 1");	ForSeqOfObjTest f2 = new ForSeqOfObjTest("create obj 2");	public static void main(String[] args) {		InitSeqOfObj i = new InitSeqOfObj();	}}class ForSeqOfObjTest {	public ForSeqOfObjTest(String msg) {		System.out.PRintln(msg);	}}

運行,輸出信息如下:

create obj 1create obj 2

和定義的順序保持一致。

總結

java 對象的成員變量的初始化順序和定義的順序一致。java 類成員的初始化順序也遵循這個原則,先定義的先初始化,非常符合人的認知習慣。

以上只是獨立的對象,如果有父類呢? 我大膽猜測一下,由于繼承關系只是繼承父類的接口,即方法,所以,當子類實例化時,父類的對象成員變量不會被初始化。

還是做個實驗吧:

package com.juneny.foundation;class parentOfInitSeqOfObj{	ForSeqOfObjTest f1 = new ForSeqOfObjTest("Parent create obj 1");}public class InitSeqOfObj extends parentOfInitSeqOfObj{	ForSeqOfObjTest f1 = new ForSeqOfObjTest("create obj 1");	ForSeqOfObjTest f2 = new ForSeqOfObjTest("create obj 2");	public static void main(String[] args) {		InitSeqOfObj i = new InitSeqOfObj();	}}class ForSeqOfObjTest {	public ForSeqOfObjTest(String msg) {		System.out.println(msg);	}}

結果讓我大跌眼鏡:

Parent create obj 1create obj 1create obj 2

看來,并非是我想象的那樣。不過,這也說的通。 因為畢竟父對象需要隨時向子對象提供自己的變量,

super.f1

在初始化子對象的時候,同時初始化父類的成員變量,也保證了隨時能向子對象提供變量引用的能力。

以上。


上一篇:ibatis

下一篇:JavaSe:Cookie管理的API介紹

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 卫辉市| 灵川县| 阿巴嘎旗| 枣强县| 洛宁县| 嫩江县| 科技| 平山县| 阿拉善盟| 宁强县| 南和县| 永修县| 澄迈县| 罗田县| 延吉市| 大英县| 南川市| 澄城县| 偏关县| 绥滨县| 英超| 马关县| 鄱阳县| 东丽区| 金阳县| 交口县| 祁阳县| 正镶白旗| 四平市| 平果县| 慈溪市| 祥云县| 清苑县| 胶南市| 汉川市| 渭南市| 安丘市| 福安市| 江陵县| 五台县| 军事|