最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java應(yīng)用程序開發(fā)學(xué)習(xí)之static關(guān)鍵字應(yīng)用

 更新時間:2018年12月13日 15:15:03   作者:Engineer-Bruce_Yang  
今天小編就為大家分享一篇關(guān)于Java應(yīng)用程序開發(fā)學(xué)習(xí)之static關(guān)鍵字應(yīng)用,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧

Java的static關(guān)鍵字和C/C++語言的關(guān)鍵字有所不同:

一旦在Java里使用了static關(guān)鍵字,那么這樣的內(nèi)容不再屬于對象自己,而是屬于類本身的,所以凡是本類的對象,都共享一份。

1、使用Java static關(guān)鍵字修飾成員變量

以下是Stundent類。

package app_one;
public class Student {
 private int id = 0 ;
 private int age = 0; 
 private String name = null;
 static int id_count = 0 ;
 public Student(int age , String name)
 {
 this.age = age ; 
 this.name = name ;
 this.id = ++id_count ;
 }
 public int getage() {
 return age;
 }
 public void setage(int age) {
 this.age = age;
 }
 public String getName() {
 return name;
 }
 public void setName(String name) {
 this.name = name;
 }
}

以下是主類:

package app_one;
public class hello {
 public static void main(String[] args) 
 {
 Student st1 = new Student(14,"小明");
 System.out.println("年齡:" + st1.getage() + " 姓名:" + st1.getName() + " 序號:" + Student.id_count);
 Student st2 = new Student(15,"小紅");
 System.out.println("年齡:" + st2.getage() + " 姓名:" + st2.getName() + " 序號:" + Student.id_count);
 Student st3 = new Student(18,"小李");
 System.out.println("年齡:" + st3.getage() + " 姓名:" + st3.getName() + " 序號:" + Student.id_count);
 }
}

運(yùn)行結(jié)果:

從上面的案例可以看到,id_count是可以自動進(jìn)行計(jì)數(shù)的,每一次實(shí)例化Student類的時候,id_count就自動+1,然后賦值給成員變量id,由于定義了static關(guān)鍵字的變量不再屬于對象,而是屬于類,所以在訪問的時候,我們可以用類名稱().靜態(tài)變量的形式來進(jìn)行訪問。

2、使用static修飾成員方法

將上述程序中Student類的id_count修改為私有的靜態(tài)變量,并添加一個靜態(tài)的Get_idcount方法。

private static int id_count = 0 ;
public static int Get_idcount()
{
 return id_count ;
}

在主類中獲取id_count不通過類.變量的方式獲取,而是改為類.方法()的方式獲取。

Student.Get_idcount()

強(qiáng)調(diào)兩點(diǎn):

  • (1)成員方法可以訪問成員變量
  • (2)成員方法可以訪問靜態(tài)變量
  • (3)靜態(tài)方法可以訪問靜態(tài)變量
  • (4)靜態(tài)方法不可以訪問成員變量(非靜態(tài))

原因:因?yàn)樵趦?nèi)存中是先有的靜態(tài)內(nèi)容,后有的非靜態(tài)內(nèi)容

  • (1)靜態(tài)方法當(dāng)中不能使用this

原因:因?yàn)閠his代表當(dāng)前對象,通過誰調(diào)用的方法,誰就是當(dāng)前對象

小結(jié):

一旦使用了static修飾成員方法,那么這就成為了靜態(tài)方法,不屬于對象,而是屬于類本身的。

對于靜態(tài)方法來說,可以通過對象名進(jìn)行調(diào)用,也可以直接通過類名稱來調(diào)用。

如果沒有static關(guān)鍵字,那么必須首先創(chuàng)建對象,然后通過對象才能使用它

如果有了static關(guān)鍵字,那么不需要創(chuàng)建對象,直接就能通過類名稱進(jìn)行調(diào)用。

無論是成員變量,還是成員方法,如果有了static,都推薦使用類名稱進(jìn)行調(diào)用。

靜態(tài)變量:類名稱.靜態(tài)變量

靜態(tài)方法:類名稱.靜態(tài)方法();

對于本類中的靜態(tài)方法,可以省略類名稱。

3、靜態(tài)static的內(nèi)存圖

參照學(xué)習(xí)傳智的Java課程給出的圖,清晰易懂。

4、靜態(tài)代碼塊

靜態(tài)代碼塊格式:

public class 類名稱{
  static
  {
    //靜態(tài)代碼塊的內(nèi)容
  }
}
  • (1)特點(diǎn):當(dāng)?shù)谝淮斡玫奖绢悤r,靜態(tài)代碼塊執(zhí)行唯一的一次,靜態(tài)內(nèi)容總是優(yōu)先于非靜態(tài),所以靜態(tài)代碼塊比構(gòu)造方法先執(zhí)行
  • (2)典型用途:用來一次性地對靜態(tài)成員變量進(jìn)行賦值。

針對上面的案例做修改,在Student類中添加一個靜態(tài)代碼塊:

package app_one;
public class Student {
 private int id = 0 ;
 private int age = 0; 
 private String name = null;
 private static int id_count = 0 ;
 static 
 {
 System.out.println("靜態(tài)代碼塊運(yùn)行!");
 }
 public Student(int age , String name)
 {
 System.out.println("構(gòu)造方法運(yùn)行!");
 this.age = age ; 
 this.name = name ;
 this.id = ++id_count ;
 }
 public int getage() {
 return age;
 }
 public void setage(int age) {
 this.age = age;
 }
 public String getName() {
 return name;
 }
 public void setName(String name) {
 this.name = name;
 }
 public static int Get_idcount()
 {
 return id_count ;
 }
}

然后主程序修改如下:

package app_one;
public class hello {
 public static void main(String[] args) 
 {
 Student st1 = new Student(14,"小紅");
 System.out.println("姓名: "+st1.getName() + " 年齡: " + st1.getage() + " 序號: "+Student.Get_idcount());
 Student st2 = new Student(14,"小李");
 System.out.println("姓名: "+st2.getName() + " 年齡: " + st2.getage() + " 序號: "+Student.Get_idcount());
 }
}

運(yùn)行結(jié)果:

很明顯得出結(jié)論。

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請查看下面相關(guān)鏈接

相關(guān)文章

  • 前端dist包放到后端springboot項(xiàng)目下一起打包圖文教程

    前端dist包放到后端springboot項(xiàng)目下一起打包圖文教程

    這篇文章主要介紹了前端dist包放到后端springboot項(xiàng)目下一起打包的相關(guān)資料,具體步驟包括前端打包、將前端文件復(fù)制到后端項(xiàng)目的static目錄、后端打包、驗(yàn)證部署成功等,需要的朋友可以參考下
    2025-01-01
  • 布隆過濾器的原理以及java 簡單實(shí)現(xiàn)

    布隆過濾器的原理以及java 簡單實(shí)現(xiàn)

    這篇文章主要介紹了布隆過濾器的原理以及java 簡單實(shí)現(xiàn),幫助大家更好的理解和學(xué)習(xí)Java,感興趣的朋友可以了解下
    2020-11-11
  • Java中的BigDecimal精度運(yùn)算詳解

    Java中的BigDecimal精度運(yùn)算詳解

    這篇文章主要介紹了Java中的BigDecimal精度運(yùn)算詳解,Java在java.math包中提供的API類BigDecimal,用來對超過16位有效位的數(shù)進(jìn)行精確的運(yùn)算,雙精度浮點(diǎn)型變量double可以處理16位有效數(shù),但在實(shí)際應(yīng)用中,可能需要對更大或者更小的數(shù)進(jìn)行運(yùn)算和處理,需要的朋友可以參考下
    2023-10-10
  • try catch finally的執(zhí)行順序深入分析

    try catch finally的執(zhí)行順序深入分析

    首先執(zhí)行try,如果有異常執(zhí)行catch,無論如何都會執(zhí)行finally,當(dāng)有return以后,函數(shù)就會把這個數(shù)據(jù)存儲在某個位置,然后告訴主函數(shù),我不執(zhí)行了,接下來你執(zhí)行吧,所以函數(shù)就會推出
    2013-09-09
  • Linux centos7環(huán)境下jdk安裝教程

    Linux centos7環(huán)境下jdk安裝教程

    這篇文章主要為大家詳細(xì)介紹了Linux centos7環(huán)境下jdk的安裝教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-03-03
  • Java紅黑樹的數(shù)據(jù)結(jié)構(gòu)與算法解析

    Java紅黑樹的數(shù)據(jù)結(jié)構(gòu)與算法解析

    紅黑樹問題是各大計(jì)算機(jī)考研命題以及面試算法題目中的熱門,接下來我們?yōu)榇蠹覉D解紅黑樹的數(shù)據(jù)結(jié)構(gòu)與算法解析,需要的朋友可以參考下
    2021-08-08
  • JavaEE線程安全實(shí)現(xiàn)線程池方法

    JavaEE線程安全實(shí)現(xiàn)線程池方法

    這篇文章主要介紹了JavaEE線程安全實(shí)現(xiàn)線程池方法,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-06-06
  • mybatisplus實(shí)現(xiàn)自動創(chuàng)建/更新時間的項(xiàng)目實(shí)踐

    mybatisplus實(shí)現(xiàn)自動創(chuàng)建/更新時間的項(xiàng)目實(shí)踐

    Mybatis-Plus提供了自動填充功能,可以通過實(shí)現(xiàn)MetaObjectHandler接口來實(shí)現(xiàn)自動更新時間的功能,本文就來介紹一下mybatisplus實(shí)現(xiàn)自動創(chuàng)建/更新時間的項(xiàng)目實(shí)踐,感興趣的可以了解下
    2024-01-01
  • Java編程發(fā)展歷史(動力節(jié)點(diǎn)Java學(xué)院整理)

    Java編程發(fā)展歷史(動力節(jié)點(diǎn)Java學(xué)院整理)

    Java的歷史可以追溯到1991年4月,Sun公司的James Gosling領(lǐng)導(dǎo)的綠色計(jì)劃(Green Project)開始著力發(fā)展一種分布式系統(tǒng)結(jié)構(gòu),使其能夠在各種消費(fèi)性電子產(chǎn)品上運(yùn)行,他們使用了C/C++/Oak語言。由于多種原因,綠色計(jì)劃逐漸陷于停滯狀態(tài)
    2017-03-03
  • Nacos Namespace/Group/DataID三者關(guān)系解讀

    Nacos Namespace/Group/DataID三者關(guān)系解讀

    本文介紹了Nacos中的命名空間(Namespace)、配置分組(Group)和配置集ID(DataID)的概念,并詳細(xì)說明了它們之間的關(guān)系和應(yīng)用場景,同時,還提供了三者在不同環(huán)境下的配置切換方案,包括DataID方案、Group方案和命名空間方案
    2024-12-12

最新評論

平陆县| 拉孜县| 永城市| 西昌市| 称多县| 金堂县| 阳江市| 洪泽县| 嘉荫县| 古田县| 海城市| 石林| 巴林左旗| 密云县| 轮台县| 嫩江县| 新绛县| 井研县| 焦作市| 惠安县| 鄂伦春自治旗| 古交市| 雷州市| 福鼎市| 玛多县| 沂源县| 贵南县| 淳安县| 浪卡子县| 左贡县| 阜南县| 田东县| 丹东市| 日照市| 和政县| 安庆市| 措勤县| 灵丘县| 婺源县| 长宁县| 万山特区|