国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

【Java基礎】static關鍵字相關

2019-11-14 21:41:22
字體:
來源:轉載
供稿:網友
java基礎】static關鍵字相關 static關鍵字特點:
  • 隨著類的加載而加載。
  • 優先于對象存在。
  • 被所有對象共享
  • 可以直接被類名調用。
使用注意:
  • 靜態方法只能訪問靜態成員。
  • 但非靜態成員可以訪問靜態成員。
  • 靜態方法中不能使用this,super關鍵字。
  • 主方法(main)是靜態的。

看了上面是不是想睡覺了,單純的概念是挺煩人的,那下面讓我們在實際代碼中來加深對他們的認知。

方法的調用可以分為兩種:

  1. 對象調用: 對象.方法(實參)
  2. 類調用: 這個方法所在類的名字.方法(實參)//前提是這個方法必須被static修飾。

沒有使用static修飾的方法或字段,屬于對象。為實例成員。

使用static修飾的方法或字段,屬于類。為類成員。

對他們的調用:

若是實例成員:只能通過對象來調用。

若是類成員:可以通過類名調用,也可以通過對象來調用。

好吧,下面小程序來了。

 1 class dog//一群狗狗 2 { 3     String name; 4     int age;//沒有使用static修飾,屬于對象,為實例成員。 5     //狗的名字,年齡,每只狗都不同,能隨意變。 6  7     static int num=100;//使用static修飾,屬于類,為類成員。 8     //而狗的總數是不變的。 9 }10 11 class day5lesson2 12 {13     public static void main(String[] args) 14     {15         System.out.View Code

上面代碼中被注釋掉的不能通過的代碼的錯題提示如下:

上面程序也說明了上面提到的:若是實例成員:只能通過對象來調用。若是類成員:可以通過類名調用,也可以通過對象來調用。但是在調用類成員時建議用類名來調用,因為在底層,對象來調用類成員,也會轉換為類名調用。

下面必須提到的是:靜態區域。它是在JVM內存中的一塊專門存儲類成員的存儲區域。

我們修改一下上面一段程序的主方法:

 1 class dog//一群狗狗 2 { 3     String name; 4     int age;//沒有使用static修飾,屬于對象,為實例成員。 5     //狗的名字,年齡,每只狗都不同,能隨意變。 6  7     static int num=100;//使用static修飾,屬于類,為類成員。 8     //而狗的總數是不變的。 9 }10 class day5lesson2 11 {12     public static void main(String[] args) 13     {14         dog d1=new dog();15         dog d2=new dog();//聲明2個對象16 17         d1.num=111;//用d1修改類成員。18         System.out.println("d1.num="+d1.num);19         System.out.println("d2.num="+d2.num);//輸出20 21         d1.age=111;//用d1修改實例成員。22         System.out.println("d1.age="+d1.age);23         System.out.println("d2.age="+d2.age);//輸出24     }25 }
View Code

結果如下:

為什么是這種結果呢?這就是static修飾的字段屬于類成員,存儲在專門的靜態區域中。(PS:在類加載時就為其創建空間,所以比較消耗性能)。一般static方法用在做工具類的方法的時候,如Arrays類(java.util.Arrays)中,大量使用static方法,可在JDK API中查看。

而沒被static修飾的age(實例成員)則不會有這種效果。(PS:int定義一個數字默認值為0,所以d2.age輸出0)


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 偏关县| 德惠市| 建德市| 甘肃省| 温州市| 台湾省| 麻栗坡县| 建阳市| 新宾| 巩义市| 乌兰县| 汾西县| 吉木乃县| 景谷| 威信县| 越西县| 临湘市| 雅江县| 平罗县| 抚松县| 启东市| 台东市| 麻城市| 丹凤县| 临西县| 从化市| 安康市| 乳山市| 茂名市| 万山特区| 阿图什市| 万安县| 沂源县| 亳州市| 滕州市| 马公市| 内黄县| 河南省| SHOW| 余姚市| 乌审旗|