欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java中的static的使用指南

 更新時(shí)間:2016年04月23日 11:41:12   作者:神話丿小王子  
本文給大家簡(jiǎn)單總結(jié)了下java中的static的使用注意事項(xiàng)及方法,非常的實(shí)用,有需要的小伙伴可以參考下

一、Java中的static使用之靜態(tài)變量

1.Java 中被static修飾的成員稱為靜態(tài)成員或類成員。它屬于整個(gè)類所有,而不是某個(gè)對(duì)象所有,即被類的所有對(duì)象所共享、且優(yōu)先于對(duì)象存在。靜態(tài)成員可以使用類名直接訪問(wèn),也可以使用對(duì)象名進(jìn)行訪問(wèn)。使用 static 可以修飾變量、方法和代碼塊。

2.public 修飾符表示公開(kāi)的、公有的,靜態(tài)變量使用static修飾

3.靜態(tài)方法中可以直接調(diào)用同類中的靜態(tài)成員,但不能直接調(diào)用非靜態(tài)成員。

public class HellWorld{
    String name = “Java”;//非靜態(tài)變量
    static String hobby = “ programing”;//靜態(tài)變量
    public static void print(){
      System.out.println(“歡迎您:” + name + ” !”);//不能直接調(diào)用非靜態(tài)變量
      System.out.println(“歡迎您:” + hobby + ” !”);//可以直接調(diào)用靜態(tài)變量
    }
  }

4.如果希望在靜態(tài)方法中調(diào)用非靜態(tài)變量,可以通過(guò)創(chuàng)建類的對(duì)象,然后通過(guò)對(duì)象來(lái)訪問(wèn)非靜態(tài)變量?!?/p>

public class HellWorld{
    String name = “Java”;//非靜態(tài)變量
    static String hobby = “program ”;//靜態(tài)變量
    //靜態(tài)方法中調(diào)用非靜態(tài)變量
    public static void print(){
      //創(chuàng)建類的對(duì)象
      HelloWorld hello=new HelloWorld();
      //通過(guò)對(duì)象來(lái)實(shí)現(xiàn)在靜態(tài)方法中調(diào)用非靜態(tài)變量
      System.out.println(“歡迎您:”+hello.name+”!”);
      //靜態(tài)方法中可以直接調(diào)用靜態(tài)變量
      System.out.prinltn(“歡迎喜歡”+program+”的”+hello.name);
    }
  }

5.在普通成員方法中,則可以直接訪問(wèn)同類的非靜態(tài)變量和靜態(tài)變量 

public class HellWorld{
    String name = “Java”;//非靜態(tài)變量
    static String hobby = “ programing”;//靜態(tài)變量
    public void print(){//普通方法
      System.out.println(“歡迎您:” + name + ” !”);
      System.out.prinltn(“歡迎喜歡”+program+”的”+hello.name);
    }
  }

 6.靜態(tài)方法中不能直接調(diào)用非靜態(tài)方法,需要通過(guò)對(duì)象來(lái)訪問(wèn)非靜態(tài)方法  

public class HellWorld{
    String name = “Java”;//非靜態(tài)變量
    static String hobby = “program ”;//靜態(tài)變量
    //非靜態(tài)方法
    public void show(){
      System.out.println(“我是非靜態(tài)方法,不能被靜態(tài)方法直接調(diào)用。。?!?;
    }
    //靜態(tài)方法
    public static void show2(){
      System.out.println(“我是靜態(tài)方法,可以直接被靜態(tài)方法調(diào)用”);
    }
    //靜態(tài)方法中通過(guò)對(duì)象來(lái)調(diào)用非靜態(tài)方法??梢灾苯诱{(diào)用靜態(tài)方法
    public static void print(){
      //創(chuàng)建類的對(duì)象
      HelloWorld hello=new HelloWorld();
      //通過(guò)對(duì)象來(lái)實(shí)現(xiàn)在靜態(tài)方法中調(diào)用非靜態(tài)方法
      hello.show();
      //靜態(tài)方法中可以直接調(diào)用靜態(tài)方法
      show2();
    }
  }

二、Java 中的 static 使用之靜態(tài)初始化塊

1.在類的聲明中,可以包含多個(gè)初始化塊,當(dāng)創(chuàng)建類的實(shí)例時(shí),就會(huì)依次執(zhí)行這些代碼塊。如果使用 static 修飾初始化塊,就稱為靜態(tài)初始化塊。

2.實(shí)例變量和類變量的區(qū)別:

a) 存放位置:類變量隨著類的加載而存放于方法區(qū)中;實(shí)例變量隨著對(duì)象的建立存在于堆內(nèi)存中。

b) 生命周期:類變量生命周期最長(zhǎng),隨著類的消失而消失;實(shí)例變量生命周期隨著對(duì)象的消失而消失。

3.靜態(tài)初始化塊只在類加載時(shí)執(zhí)行,且只會(huì)執(zhí)行一次,同時(shí)靜態(tài)初始化塊只能給靜態(tài)變量賦值,不能初始化普通的成員變量。程序運(yùn)行時(shí),靜態(tài)初始化快先被執(zhí)行并優(yōu)先于主函數(shù),然后執(zhí)行普通初始化塊,最后才執(zhí)行構(gòu)造方法。

public class StaticDemo {
  int num1;//聲明變量1
  int num2;//聲明變量2
  static int num3;//聲明靜態(tài)變量3
  public StaticDemo(){//構(gòu)造方法
    num1 = 88;
    System.out.println("通過(guò)構(gòu)造方法為變量1賦值");
  }
  {//初始化塊
    num2 = 99;
    System.out.println("通過(guò)初始化塊為變量2賦值");
  }
  static{//靜態(tài)初始化這里不能giel普通變量賦值
    num3 = 77;
    System.out.println("通過(guò)靜態(tài)初始化塊為靜態(tài)變量3賦值");
  }
  public static void main(String[] args) {
    StaticDemo hello = new StaticDemo();//創(chuàng)建類的對(duì)象hello
    System.out.println("num1:" + hello.num1);
    System.out.println("num2:" + hello.num2);
    System.out.println("num3:" + hello.num3);
    StaticDemo hello1 = new StaticDemo();
  }
}

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

相關(guān)文章

  • Java 實(shí)現(xiàn)簡(jiǎn)單靜態(tài)資源Web服務(wù)器的示例

    Java 實(shí)現(xiàn)簡(jiǎn)單靜態(tài)資源Web服務(wù)器的示例

    這篇文章主要介紹了Java 實(shí)現(xiàn)簡(jiǎn)單靜態(tài)資源Web服務(wù)器的示例,幫助大家更好的理解和使用Java,感興趣的朋友可以了解下
    2020-11-11
  • Java案例使用集合方法實(shí)現(xiàn)統(tǒng)計(jì)任意字符串中字符出現(xiàn)的次數(shù)

    Java案例使用集合方法實(shí)現(xiàn)統(tǒng)計(jì)任意字符串中字符出現(xiàn)的次數(shù)

    這篇文章主要介紹了Java案例使用集合方法實(shí)現(xiàn)統(tǒng)計(jì)任意字符串中字符出現(xiàn)的次數(shù),下面我們將用兩種方法實(shí)現(xiàn),需要的小伙伴可以參考一下文章具體內(nèi)容
    2022-04-04
  • java Future 接口使用方法詳解

    java Future 接口使用方法詳解

    這篇文章主要介紹了java Future 接口使用方法詳解,F(xiàn)uture接口是Java線程Future模式的實(shí)現(xiàn),可以來(lái)進(jìn)行異步計(jì)算的相關(guān)資料,需要的朋友可以參考下
    2017-03-03
  • java算法之二分查找法的實(shí)例詳解

    java算法之二分查找法的實(shí)例詳解

    這篇文章主要介紹了java算法之二分查找法的實(shí)例詳解的相關(guān)資料,這里提供簡(jiǎn)單實(shí)例幫助大家學(xué)習(xí)理解這部分內(nèi)容,需要的朋友可以參考下
    2017-08-08
  • springboot集成flyway自動(dòng)創(chuàng)表的詳細(xì)配置

    springboot集成flyway自動(dòng)創(chuàng)表的詳細(xì)配置

    Flayway是一款數(shù)據(jù)庫(kù)版本控制管理工具,支持?jǐn)?shù)據(jù)庫(kù)版本自動(dòng)升級(jí),Migrations可以寫(xiě)成sql腳本,也可以寫(xiě)在java代碼里;本文通過(guò)實(shí)例代碼給大家介紹springboot集成flyway自動(dòng)創(chuàng)表的詳細(xì)過(guò)程,感興趣的朋友一起看看吧
    2021-06-06
  • Java Mybatis框架Dao層的實(shí)現(xiàn)與映射文件以及核心配置文件詳解分析

    Java Mybatis框架Dao層的實(shí)現(xiàn)與映射文件以及核心配置文件詳解分析

    MyBatis 是一款優(yōu)秀的持久層框架,它支持自定義 SQL、存儲(chǔ)過(guò)程以及高級(jí)映射。MyBatis 免除了幾乎所有的 JDBC 代碼以及設(shè)置參數(shù)和獲取結(jié)果集的工作。MyBatis 可以通過(guò)簡(jiǎn)單的 XML 或注解來(lái)配置和映射原始類型、接口和 Java POJO為數(shù)據(jù)庫(kù)中的記錄
    2021-10-10
  • Java8中接口的新特性測(cè)試

    Java8中接口的新特性測(cè)試

    今天小編就為大家分享一篇關(guān)于Java8中接口的新特性測(cè)試,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2018-12-12
  • 說(shuō)說(shuō)Spring中為何要引入Lookup注解

    說(shuō)說(shuō)Spring中為何要引入Lookup注解

    這篇文章主要給大家介紹了關(guān)于Spring中為何要引入Lookup注解的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • 關(guān)于HashMap相同key累加value的問(wèn)題

    關(guān)于HashMap相同key累加value的問(wèn)題

    這篇文章主要介紹了關(guān)于HashMap相同key累加value的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-05-05
  • GateWay動(dòng)態(tài)路由與負(fù)載均衡詳細(xì)介紹

    GateWay動(dòng)態(tài)路由與負(fù)載均衡詳細(xì)介紹

    這篇文章主要介紹了GateWay動(dòng)態(tài)路由與負(fù)載均衡,GateWay支持自動(dòng)從注冊(cè)中心中獲取服務(wù)列表并訪問(wèn),即所謂的動(dòng)態(tài)路由
    2022-11-11

最新評(píng)論