亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術(shù)文章
文章詳情頁

java - 請(qǐng)問下,這里為何會(huì)引發(fā)空指針異常?

瀏覽:73日期:2024-01-25 16:13:38

問題描述

java - 請(qǐng)問下,這里為何會(huì)引發(fā)空指針異常?

有人跟我講,將name進(jìn)行靜態(tài)賦值即可,但實(shí)例變量不也是屬于成員變量嗎,也是在整個(gè)類實(shí)例化的時(shí)候產(chǎn)生的啊,跟靜態(tài)賦值有何區(qū)別嗎?

問題解答

回答1:

父類的構(gòu)造方法先于子類構(gòu)造方法執(zhí)行,Base()->test()-->name.length()相當(dāng)于null.length()。將name寫成靜態(tài)的話,當(dāng)然可以了,因?yàn)殪o態(tài)成員的初始化先于實(shí)例成員的初始化。

順序大概是這樣的:

父類static{...}

父類靜態(tài)成員

父類構(gòu)造方法

子類static{...}

子類靜態(tài)成員

子類構(gòu)造方法

回答2:

首先拋出一個(gè)概念,對(duì)象的初始化流程:靜態(tài)變量 > 靜態(tài)初始化塊 > 實(shí)例變量 > 構(gòu)造器而存在父子類關(guān)系的對(duì)象,又存在一個(gè)嵌套的初始化流程父類初始化流程 > 子類初始化流程

所以在你實(shí)例化的過程中,調(diào)用父類構(gòu)造器并調(diào)用test()方法時(shí),子類的name還沒有賦值,仍然是null,自然就會(huì)報(bào)空指針。

回答3:

你把name放在父類Base中定義就不會(huì)報(bào)錯(cuò)。 因?yàn)槟銓?shí)例化Sub時(shí),會(huì)調(diào)用默認(rèn)的構(gòu)造函數(shù),默認(rèn)的構(gòu)造函數(shù)會(huì)調(diào)用父類的構(gòu)造函數(shù),在父類的構(gòu)造函數(shù)中,你使用了test()方法,而你在子類中重寫了該方法,子類的test方法內(nèi)使用了name,但是這時(shí)候name還沒有完成初始化。所以會(huì)報(bào)NullPointerException。

標(biāo)簽: java
相關(guān)文章:
主站蜘蛛池模板: 成人国产精品一级毛片了 | 亚洲国产二区 | 日本无卡无吗在线 | 一级aaaaaa毛片免费 | 国产免费播放一区二区三区 | 看片视频在线观看 | 一级一级一级毛片免费毛片 | 亚洲欧美成人中文在线网站 | 日韩欧美国产一区二区三区四区 | 一级久久 | 国产精品你懂的 | 99在线观看视频免费精品9 | 成人午夜大片免费看爽爽爽 | 影院色| 日韩欧美亚洲精品 | 久久香蕉国产线看观看8青草 | 91麻豆国产极品在线观看洋子 | 国产99在线a视频 | 青青青国产依人在线视频97 | 亚洲无线乱码高清在线观看一区 | 中文字幕欧美一区 | 久久黄色网址 | 激情婷婷成人亚洲综合 | 美国毛片网 | 青青草视频在线观看免费 | 精品国产麻豆 | 成年在线观看视频免费看 | 国产综合欧美日韩视频一区 | 99久久精品免费看国产 | 欧美一区亚洲 | 免费在线视频一区 | 香蕉视频免费在线观看 | 香蕉国产在线观看免费 | 天天看大片特色视频.vr | 国产成人三级经典中文 | 高清欧美一区二区三区 | 不卡视频在线播放 | 青青草综合视频 | 国产美女一区二区三区 | 丁香婷婷开心激情深爱五月 | 在线观看国产小屁孩cao大人 |