亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊(cè) 查看新帖 |

Chinaunix

  平臺(tái) 論壇 博客 文庫(kù)
最近訪問(wèn)板塊 發(fā)新帖
查看: 2235 | 回復(fù): 4
打印 上一主題 下一主題

Java類(lèi)初始化順序 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2010-10-26 16:12 |只看該作者 |倒序?yàn)g覽
Java技術(shù)筆試及面試中常出的問(wèn)題,我們總結(jié)一下

直接看例子:
  1. //test.java
  2. public class test{
  3.         public static void main(String[] args) throws Exception{
  4.                 new ExtendedClass();
  5.         }
  6. }

  7. class BaseClass {
  8.         BaseClass() {
  9.                 print("BaseClass:Constructor");
  10.         }
  11.         AnotherClass ac = new AnotherClass("BaseClass:Variable");
  12.         {print("BaseClass:Initialization Block");}
  13.         static{print("BaseClass:Static Initialization Block");}
  14.         static AnotherClass sac = new AnotherClass("BaseClass:Static Variable");
  15.         public static void print(Object o) {
  16.                 System.out.println(o);
  17.         }
  18. }

  19. class ExtendedClass extends BaseClass {
  20.         ExtendedClass() {
  21.                 print("ExtendedClass:Constructor");
  22.         }
  23.         {print("ExtendedClass:Initialization Block");}
  24.         AnotherClass ac = new AnotherClass("ExtendedClass:Variable");
  25.         static AnotherClass sac = new AnotherClass("ExtendedClass:Static Variable");
  26.         static {print("ExtendedClass:Static Initialization Block");}
  27. }

  28. class AnotherClass {
  29.         AnotherClass(Object o) {
  30.                 System.out.println(o);
  31.         }
  32. }
復(fù)制代碼
執(zhí)行結(jié)果
  1. BaseClass:Static Initialization Block

  2. BaseClass:Static Variable

  3. ExtendedClass:Static Variable

  4. ExtendedClass:Static InitializationBlock

  5. BaseClass:Variable

  6. BaseClass:Initialization Block

  7. BaseClass:Constructor

  8. ExtendedClass:Initialization Block

  9. ExtendedClass:Variable

  10. ExtendedClass:Constructor
復(fù)制代碼
可以看出,在創(chuàng)建一個(gè)子類(lèi)對(duì)象時(shí),執(zhí)行順序是
  1. 父類(lèi)靜態(tài)初始化塊及靜態(tài)成員變量

  2. 子類(lèi)靜態(tài)初始化塊及靜態(tài)成員變量

  3. 父類(lèi)非靜態(tài)初始化塊及非靜態(tài)成員變量

  4. 父類(lèi)構(gòu)造函數(shù)

  5. 子類(lèi)非靜態(tài)初始化塊及非靜態(tài)成員變量

  6. 子類(lèi)構(gòu)造函數(shù)
復(fù)制代碼
而關(guān)于同為靜態(tài)(或非靜態(tài))的初始化塊和成員變量執(zhí)行的先后順序是怎樣呢,

仔細(xì)看例子就可以看出,例子中既有初始化塊在成員變量之前,也有成員變量在初始化塊之前的情況

運(yùn)行結(jié)果是按源代碼書(shū)寫(xiě)順序執(zhí)行

其實(shí)下面的兩種書(shū)寫(xiě)方式是等價(jià)的
  1. class test {
  2.         static type t;
  3.         static {
  4.                 someMethod();
  5.         }
  6. }

  7. //二者等價(jià)
  8. class test {
  9.         static {
  10.                 type t;
  11.                 someMethod();
  12.         }
  13. }
復(fù)制代碼

論壇徽章:
0
2 [報(bào)告]
發(fā)表于 2010-10-29 08:30 |只看該作者
很基礎(chǔ)的內(nèi)容,好東西

論壇徽章:
59
2015七夕節(jié)徽章
日期:2015-08-24 11:17:25ChinaUnix專(zhuān)家徽章
日期:2015-07-20 09:19:30每周論壇發(fā)貼之星
日期:2015-07-20 09:19:42ChinaUnix元老
日期:2015-07-20 11:04:38榮譽(yù)版主
日期:2015-07-20 11:05:19巳蛇
日期:2015-07-20 11:05:26CU十二周年紀(jì)念徽章
日期:2015-07-20 11:05:27IT運(yùn)維版塊每日發(fā)帖之星
日期:2015-07-20 11:05:34操作系統(tǒng)版塊每日發(fā)帖之星
日期:2015-07-20 11:05:36程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-07-20 11:05:40數(shù)據(jù)庫(kù)技術(shù)版塊每日發(fā)帖之星
日期:2015-07-20 11:05:432015年辭舊歲徽章
日期:2015-07-20 11:05:44
3 [報(bào)告]
發(fā)表于 2010-11-02 12:11 |只看該作者
實(shí)例化的時(shí)候都是先執(zhí)行父類(lèi)的構(gòu)造函數(shù)啊。

論壇徽章:
0
4 [報(bào)告]
發(fā)表于 2010-11-02 20:41 |只看該作者
很基礎(chǔ)  但又很容易混淆的知識(shí)

論壇徽章:
0
5 [報(bào)告]
發(fā)表于 2010-11-02 20:43 |只看該作者
很基礎(chǔ)  但又很容易混淆的知識(shí)
您需要登錄后才可以回帖 登錄 | 注冊(cè)

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號(hào)-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號(hào):11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專(zhuān)區(qū)
中國(guó)互聯(lián)網(wǎng)協(xié)會(huì)會(huì)員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過(guò)ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請(qǐng)注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP