日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

04_类与对象_课程动手动脑问题以及课后实验性问题及解答集锦

發布時間:2023/12/20 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 04_类与对象_课程动手动脑问题以及课后实验性问题及解答集锦 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Answer:

?

動手動腦:

1——以下代碼為何無法通過編譯?哪兒出錯了?

??

Answer:

因為類Foo的構造函數是有一個參數的,所以我們在new一個Foo類的對象時必須賦予一個符合條件的實參。

?

?

?

?2——

請運行TestStaticInitializeBlock.java示例,觀察輸出結果,總結出“靜態初始化塊的執行順序”。

?TestStaticInitializeBlock.java:

class Root {static{System.out.println("Root的靜態初始化塊");}{System.out.println("Root的普通初始化塊");}public Root(){System.out.println("Root的無參數的構造器");} } class Mid extends Root {static{System.out.println("Mid的靜態初始化塊");}{System.out.println("Mid的普通初始化塊");}public Mid(){System.out.println("Mid的無參數的構造器");}public Mid(String msg){//通過this調用同一類中重載的構造器this();System.out.println("Mid的帶參數構造器,其參數值:" + msg);} } class Leaf extends Mid {static{System.out.println("Leaf的靜態初始化塊");}{System.out.println("Leaf的普通初始化塊");} public Leaf(){//通過super調用父類中有一個字符串參數的構造器super("Java初始化順序演示");System.out.println("執行Leaf的構造器");}}public class TestStaticInitializeBlock {public static void main(String[] args) {new Leaf();} }

? 輸出結果:

?

?總結靜態初始化塊的執行順序:

1.靜態初始化塊只執行一次。

2.創建子類型的對象時,也會導致父類型的靜態初始化塊的執行。

2.并且從父類到子類依次執行完靜態初始化塊。然后從父類到子類依次執行完普通初始化塊。最后再從父類到子類依次執行構造函數。(執行順序:靜態初始化塊——>普通初始化塊——>構造函數)

?

?

?

?

?

要求發表的:

1——自行總結java字段初始化的規律:

? ? ? Answer:

所有類的變量都默認初始化為null,比如String a; Integer b;
數字類的原始數據類型默認初始化為0,比如int a; short b; char c;
boolean默認初始化為false.

針對java中的構造函數的初始化: 對象創建的時候先賦初始化值然后在調用構造函數初始化。

?

?

類字段的初始化順序——

1.執行類成員定義時指定的默認值或類的初始化塊,到底執行哪一個要看哪一個“排在前面”。

2.執行類的構造函數:

類的初始化塊不接收任何的參數,而且只要一創建類的對象,它們就會被執行。因此,適合于封裝那些“對象創建時必須執行的代碼”。

?

轉載于:https://www.cnblogs.com/6354-aa/p/5995228.html

總結

以上是生活随笔為你收集整理的04_类与对象_课程动手动脑问题以及课后实验性问题及解答集锦的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。