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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

Java面向对象(三)Static

發布時間:2024/4/30 java 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java面向对象(三)Static 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.



? ? static本身是一個修飾符,可以修飾變量、方法、代碼塊、內部類。

一、static修飾變量 --- 靜態變量

? ? static修飾 變量后這個變量稱之為靜態變量或類變量。

? ? 靜態變量隨著類的加而加載到方法去中的靜態區,并且在靜態區中自動賦予初始值。

? ? 由于靜態變量是先于對象存在的,所以靜態變量可以 有對象調用,也可由類名調用。

? ? 由于該類 創建的所有對象存儲的是靜態屬在靜態區中的地址,所以晶太屬性是被所有對象所共享的


問:

1. 靜態變量可以定義在函數中么?

解: 不可以

靜態變量需要在類被加載的時候加載并被初始化,但是定義在函數中隨著類的加載被加載到方法區,并沒有被執行,所以靜態變量不能被加載。

2. 在構造方法中可以定義靜態變量么?

解; 不可以

靜態變量需要在類被加載的時候加載并被初始化,但是定義在函數中隨著類的加載被加載到方法區,并沒有被執行,所以靜態變量不能被加載。

3. 在構造代碼塊中能初始化靜態變量么?

解: 可以

靜態變量先被加載,在對象創建時執行構造代碼塊,靜態變量被初始化。

4. 可以用this來調用靜態變量么?

解: 可以

this是當前活躍對象的引用,靜態變量可以由對象后者類調用,所以this可以調用靜態變量。

二、靜態方法

static修飾方法可以稱之為靜態方法或類方法。

靜態方法是隨著類的加載被加載到方法區中的靜態區。

靜態區中的元素不屬于某一個對象,而是歸屬于類。

靜態方法是屬于類的,可以通過類調用,也可以通過對象調用。

例: System.arraycopy() 、 Arrays.sort() 、Arrays.toString()

System.out.println() 不是靜態方法 ? ,out是一個對象

問:

1. 靜態方法中可以定義靜態變量么??

解: 不可以

靜態變量需要在類被加載的時候加載并被初始化,但是定義在函數中隨著類的加載被加載到方法區,并沒有被執行,所以靜態變量不能被加載。

2.?靜態方法中可以直接調用本類的非靜態函數么?

解: 不可以

任何非靜態的函數或屬性都需要通過對象來調用。而靜態的屬性或函數只需要類就可以調用。當通過類調用含有非靜態函數的靜態函數時,非靜態函數沒有被對象調用卻要執行,產生矛盾!

3. 靜態函數可以重載么?

解: 可以

重載要求方法名一致,參數列表不同,與static無關。

但不是真正意義上的 重載。

4. 主函數中可以使用this么?

解: 不可以

this相當于當前活躍對象的引用,而主函數執行是沒有對象,所以矛盾。

5. 靜態函數可以重寫么?

解: 不可以

多態針對的是對象中的方法,從對象的層面來看,而靜態是從類的層面來看的。

6. 父子類中可以存在方法簽名一致的方法么?

解: 可以

父類有static修飾,子類也必須有static修飾。

靜態看的是聲明類,非靜態看的是實現類。

父子類中存在了方法簽名一致的方法的時候,要么都是靜態,要么都是非靜態。

三、靜態代碼塊

在類內 用static{ } --- 靜態代碼塊

創建子類時執行順序: 父類靜態---> 子類靜態 ----> 父類非靜態 ---->子類非靜態 ? (規律: 靜態優先于非靜態,父類優先于子類)

類加載的時候執行,實際上靜態代碼塊是隨著類加載而加載到靜態區,在類創建對象或者執行方法之前執行一次。而且只執行一次,后續不再執行。



? ? static本身是一個修飾符,可以修飾變量、方法、代碼塊、內部類。

一、static修飾變量 --- 靜態變量

? ? static修飾 變量后這個變量稱之為靜態變量或類變量。

? ? 靜態變量隨著類的加而加載到方法去中的靜態區,并且在靜態區中自動賦予初始值。

? ? 由于靜態變量是先于對象存在的,所以靜態變量可以 有對象調用,也可由類名調用。

? ? 由于該類 創建的所有對象存儲的是靜態屬在靜態區中的地址,所以晶太屬性是被所有對象所共享的


問:

1. 靜態變量可以定義在函數中么?

解: 不可以

靜態變量需要在類被加載的時候加載并被初始化,但是定義在函數中隨著類的加載被加載到方法區,并沒有被執行,所以靜態變量不能被加載。

2. 在構造方法中可以定義靜態變量么?

解; 不可以

靜態變量需要在類被加載的時候加載并被初始化,但是定義在函數中隨著類的加載被加載到方法區,并沒有被執行,所以靜態變量不能被加載。

3. 在構造代碼塊中能初始化靜態變量么?

解: 可以

靜態變量先被加載,在對象創建時執行構造代碼塊,靜態變量被初始化。

4. 可以用this來調用靜態變量么?

解: 可以

this是當前活躍對象的引用,靜態變量可以由對象后者類調用,所以this可以調用靜態變量。

二、靜態方法

static修飾方法可以稱之為靜態方法或類方法。

靜態方法是隨著類的加載被加載到方法區中的靜態區。

靜態區中的元素不屬于某一個對象,而是歸屬于類。

靜態方法是屬于類的,可以通過類調用,也可以通過對象調用。

例: System.arraycopy() 、 Arrays.sort() 、Arrays.toString()

System.out.println() 不是靜態方法 ? ,out是一個對象

問:

1. 靜態方法中可以定義靜態變量么??

解: 不可以

靜態變量需要在類被加載的時候加載并被初始化,但是定義在函數中隨著類的加載被加載到方法區,并沒有被執行,所以靜態變量不能被加載。

2.?靜態方法中可以直接調用本類的非靜態函數么?

解: 不可以

任何非靜態的函數或屬性都需要通過對象來調用。而靜態的屬性或函數只需要類就可以調用。當通過類調用含有非靜態函數的靜態函數時,非靜態函數沒有被對象調用卻要執行,產生矛盾!

3. 靜態函數可以重載么?

解: 可以

重載要求方法名一致,參數列表不同,與static無關。

但不是真正意義上的 重載。

4. 主函數中可以使用this么?

解: 不可以

this相當于當前活躍對象的引用,而主函數執行是沒有對象,所以矛盾。

5. 靜態函數可以重寫么?

解: 不可以

多態針對的是對象中的方法,從對象的層面來看,而靜態是從類的層面來看的。

6. 父子類中可以存在方法簽名一致的方法么?

解: 可以

父類有static修飾,子類也必須有static修飾。

靜態看的是聲明類,非靜態看的是實現類。

父子類中存在了方法簽名一致的方法的時候,要么都是靜態,要么都是非靜態。

三、靜態代碼塊

在類內 用static{ } --- 靜態代碼塊

執行順序: 父類靜態---> 子類靜態 ----> 父類非靜態 ---->子類非靜態


總結

以上是生活随笔為你收集整理的Java面向对象(三)Static的全部內容,希望文章能夠幫你解決所遇到的問題。

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