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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

java上课作业(第三次)

發布時間:2024/4/14 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java上课作业(第三次) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一)請依據代碼:

的輸出結果,自行總結Java字段初始化的規律。

源代碼:

class?InitializeBlockClass

{

?

{

????field=200;

}

public?int?field=100;

public?InitializeBlockClass(int?value){

this.field=value;

}

public?InitializeBlockClass(){

?

}

}

public?class?Test?{

public?static?void?main(String[]?args)?

{

?

InitializeBlockClass?obj=new?InitializeBlockClass();

System.out.println(obj.field);

?

obj=new?InitializeBlockClass(300);

System.out.println(obj.field);

}

}

public?int?field=100;在類初始化后面時:

?

public?int?field=100;在類初始化前面時:

?

?

通過兩個情況對比,很容易發現:執行類成員定義時指定的默認值或類的初始化塊,到底執行哪一個要看哪一個“排在前面”。

二)當多個類之間有繼承關系時,創建子類對象會導致父類初始化塊的執行。請自行編寫示例代碼驗證以上結論。

源代碼:

//驗證當多個類之間有繼承關系時,創建子類對象會導致父類初始化塊的執行。

//范亞雷,2015,10,17

?

class?One???????//祖父類

{

????static

???????{

???????????System.out.println("祖父類的靜態初始化塊");

???????}

????{

????????System.out.println("祖父普通初始化塊");

????}

}

?

class?Two?extends?One?????//父類

{

????static

????????{

??????????System.out.println("父類的靜態初始化塊");

????????}

??????{

????????System.out.println("父類的普通初始化塊");

??????}

}

?

class?Three?extends?Two?????//子類

{

????static

????????{

??????????System.out.println("子類的靜態初始化塊");

????????}

??????{

????????System.out.println("子類的普通初始化塊");

??????}

}

?

public?class?Test2

{

?????public?static?void?main(String[]?args)?

?????????{

?????????????new?Three();

?????????}

}

運行結果:

?

從運行結果的截圖中很容易看出創建子類對象會導致父類初始化塊的執行。

三)靜態方法中只允許訪問靜態數據,那么,如何在靜態方法中訪問類的實例成員(即沒有附加static關鍵字的字段或方法)?請編寫代碼驗證你的想法。

源代碼:

//靜態方法中訪問類的實例成員(

//范亞雷?2015.10.17

class?Myclass

{

int?i=100;????//實例變量

static?public?void?output(){

Myclass?a=new?Myclass();???//關鍵點

System.out.println(a.i);

}

}

public?class?Test3?{

???????public?static?void?main(String[]?args){

???? ???Myclass?g=new?Myclass();

???? ???g.output();

???????}

}

運行結果:

?

運用靜態方法訪問實例變量,最關鍵的步驟是在靜態變量中新建對象實例,再引用類中實例變量。

四)使用類的靜態字段和構造函數,我們可以跟蹤某個類所創建對象的個數。請寫一個類,在任何時候都可以向它查詢“你已經創建了多少個對象?”。

源代碼:

//使用類的靜態字段和構造函數跟蹤某個類所創建對象的個數。

//范亞雷?2015.10.17

class?Myclass

{

int?i=0;????????//計數變量

public?Myclass(){

i++;

System.out.println("當前創建的對象個數為"+i);

}

}

public?class?Test3?{

???????public?static?void?main(String[]?args){

???? ???Myclass?g=new?Myclass();

???????}

}

運行結果截圖:

?

?

五)兩對整數明明完全一樣,為何一個輸出true,一個輸出false

?

?

整數在小于127時都可以用常量池,因此第一次比較的的地址是取自同一個地址的數字,而第二次比較的數是創建了兩個不同地址的對象,所以第一次比較的地址相同,第二次不同。

轉載于:https://www.cnblogs.com/fan-xiaofan/p/4888439.html

總結

以上是生活随笔為你收集整理的java上课作业(第三次)的全部內容,希望文章能夠幫你解決所遇到的問題。

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