變量基本使用

      網(wǎng)友投稿 727 2022-05-29

      類變量

      1. 類變量-提出問(wèn)題

      2. 傳統(tǒng)的方法來(lái)解決

      3. 類變量快速入門

      4. 類變量?jī)?nèi)存布局

      5. 什么是類變量

      6. 如何定義類變量

      7. 如何訪問(wèn)類變量

      8. 類變量使用注意事項(xiàng)和細(xì)節(jié)討論

      類變量

      1. 類變量-提出問(wèn)題

      2. 傳統(tǒng)的方法來(lái)解決

      3. 類變量快速入門

      4. 類變量?jī)?nèi)存布局

      5. 什么是類變量

      6. 如何定義類變量

      7. 如何訪問(wèn)類變量

      8. 類變量使用注意事項(xiàng)和細(xì)節(jié)討論

      類變量

      1. 類變量-提出問(wèn)題

      有一群小孩在玩堆雪人,不時(shí)有新的小孩加入,請(qǐng)問(wèn)如何知道現(xiàn)在共有多少人在玩?,編寫程序解決。

      2. 傳統(tǒng)的方法來(lái)解決

      思路:

      1.在main方法中定義一個(gè)變量count

      2.當(dāng)一個(gè)小孩加入游戲后count++,最后一個(gè)count 就記錄有多少小孩玩游戲

      public class ChildGame { public static void main(String[] args) { //定義一個(gè)變量 count,統(tǒng)計(jì)有多少小孩加入游戲 int count = 0; Child child1 = new Child("小明"); child1.join(); count++; Child child2 = new Child("小華"); child2.join(); count++; Child child3 = new Child("小紅"); child3.join(); count++; System.out.println("共有 " + count + " 個(gè)小孩加入了游戲"); } } class Child{ private String name; public Child(String name){ this.name = name; } public void join(){ System.out.println(name + "加入了游戲"); } }

      問(wèn)題分析:

      1.count是一個(gè)獨(dú)立于對(duì)象

      2.以后訪問(wèn)count很麻煩,沒(méi)有使用到OOP

      3.因此,引出 類變量/靜態(tài)變量

      3. 類變量快速入門

      思考: 如果,設(shè)計(jì)一個(gè) int count 表示總?cè)藬?shù),在創(chuàng)建一個(gè)小孩時(shí),就把 count 加 1,并且 count 是所有對(duì)象共享的就 ok 了,我們使用類變量來(lái)解決 ChildGame.java 改進(jìn)。

      public class ChildGame { public static void main(String[] args) { //定義一個(gè)變量 count,統(tǒng)計(jì)有多少小孩加入游戲 int count = 0; Child child1 = new Child("小明"); child1.join(); // count++; child1.count++; Child child2 = new Child("小華"); child2.join(); // count++; child2.count++; Child child3 = new Child("小紅"); child3.join(); // count++; child3.count++; //類變量,可以通過(guò)類名來(lái)訪問(wèn) System.out.println("共有 " + Child.count + " 個(gè)小孩加入了游戲"); System.out.println("child1=" + child1.count); System.out.println("child2=" + child2.count); System.out.println("child3=" + child3.count); } } class Child{ private String name; //定義一個(gè)變量 count ,是一個(gè)類變量(靜態(tài)變量) static //該變量最大的特點(diǎn)就是被 Child 類的所有的對(duì)象實(shí)例所共享 public static int count = 0; public Child(String name){ this.name = name; } public void join(){ System.out.println(name + "加入了游戲"); } }

      4. 類變量?jī)?nèi)存布局

      static 變量是對(duì)象共享,不管static變量在哪里, static 變量是同一個(gè)類所有對(duì)象共享

      static類變量,在類加載的時(shí)候就生成了

      5. 什么是類變量

      類變量也叫靜態(tài)變量/靜態(tài)屬性,是該類的所有對(duì)象共享的變量,任何一個(gè)該類的對(duì)象去訪問(wèn)它時(shí),取到的都是相同的值。同樣任何一個(gè)該類的對(duì)象去修改它時(shí),修改的也是同一個(gè)變量。

      6. 如何定義類變量

      定義語(yǔ)法:

      訪問(wèn)修飾符 static 數(shù)據(jù)類型 變量名;[推薦] static 訪問(wèn)修飾符 數(shù)據(jù)類型 變量名;

      public static String name1 = "兮動(dòng)人"; static public String name2 = "xdr630"

      7. 如何訪問(wèn)類變量

      類名.類變量名 或 對(duì)象名.類變量名 【靜態(tài)變量的訪問(wèn)修飾符的訪問(wèn)權(quán)限和范圍和普通屬性是一樣的】 推薦使用:類名.類變量名

      測(cè)試案例

      public class VisitStatic { public static void main(String[] args) { //類名.類變量名 //說(shuō)明:類變量是隨著類的加載而創(chuàng)建的,所以即使沒(méi)有創(chuàng)建對(duì)象也可以訪問(wèn) System.out.println(A.name); //對(duì)象名.類變量名 A a = new A(); System.out.println(a.name); } } class A{ //類變量 //類變量的訪問(wèn)必須遵守相關(guān)的訪問(wèn)權(quán)限 public static String name = "兮動(dòng)人"; }

      8. 類變量使用注意事項(xiàng)和細(xì)節(jié)討論

      什么時(shí)候需要用類變量:

      類變量基本使用

      當(dāng)我們需要讓某個(gè)類的所有對(duì)象都共享一個(gè)變量時(shí),就可以考慮使用類變量(靜態(tài)變量):比如:定義學(xué)生類,統(tǒng)計(jì)所有學(xué)生共交多少錢。 Student (name, static fee)

      類變量與實(shí)例變量(普通屬性)區(qū)別:類變量是該類的所有對(duì)象共享的,而實(shí)例變量是每個(gè)對(duì)象獨(dú)享的。

      加上static稱為類變量或靜態(tài)變量,否則稱為實(shí)例變量/普通變量/非靜態(tài)變量

      類變量可以通過(guò) 類名.類變量名或者對(duì)象名.類變量名來(lái)訪問(wèn),但java設(shè)計(jì)者推薦我們使用類名.類變量名方式訪問(wèn)。【前提是滿足訪問(wèn)修飾符的訪問(wèn)權(quán)限和范圍】

      實(shí)例變量不能通過(guò)類名.類變量名方式訪問(wèn)。

      類變量是在類加載時(shí)就初始化了,也就是說(shuō),即使你沒(méi)有創(chuàng)建對(duì)象,只要類加載了就可以使用類變量了。

      類變量的生命周期是隨類的加載開始,隨著類消亡而銷毀。

      Java

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。

      上一篇:XXE漏洞原理/防御
      下一篇:Posix線程編程指南(3)
      相關(guān)文章
      亚洲伊人tv综合网色| 日韩亚洲国产二区| 亚洲熟妇久久精品| 亚洲日产2021三区| 亚洲精品韩国美女在线| 国产成人精品日本亚洲| 亚洲免费在线观看| 色窝窝亚洲AV网在线观看| 亚洲午夜一区二区三区| 亚洲日本香蕉视频| 亚洲天堂一区二区| 亚洲天天在线日亚洲洲精| 亚洲成AV人片在线播放无码| 国产亚洲av片在线观看播放 | 日韩亚洲国产二区| 亚洲精品WWW久久久久久| 国产精品V亚洲精品V日韩精品| 亚洲男人天堂2020| 亚洲综合AV在线在线播放| 久99精品视频在线观看婷亚洲片国产一区一级在线 | 亚洲福利一区二区三区| 亚洲图片中文字幕| 亚洲一区二区三区精品视频| 亚洲 欧洲 视频 伦小说| 亚洲国产精品久久久久秋霞小| 亚洲a∨无码精品色午夜| 国产精品亚洲专区无码不卡| 亚洲欧洲日本在线| 亚洲乱码中文字幕久久孕妇黑人| 亚洲va无码va在线va天堂| 内射干少妇亚洲69XXX| 亚洲伊人久久大香线蕉啊| jiz zz在亚洲| 激情无码亚洲一区二区三区 | 亚洲第一区精品观看| 337p日本欧洲亚洲大胆裸体艺术| 亚洲成av人影院| 亚洲国产精品网站久久| 亚洲熟妇无码AV| 国产精品亚洲综合一区| 国产亚洲一区二区精品|