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

首頁 > 編程 > Java > 正文

Java中的static的使用指南

2019-11-26 14:25:40
字體:
來源:轉載
供稿:網友

一、Java中的static使用之靜態變量

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

2.public 修飾符表示公開的、公有的,靜態變量使用static修飾

3.靜態方法中可以直接調用同類中的靜態成員,但不能直接調用非靜態成員。

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

4.如果希望在靜態方法中調用非靜態變量,可以通過創建類的對象,然后通過對象來訪問非靜態變量。 

public class HellWorld{    String name = “Java”;//非靜態變量    static String hobby = “program ”;//靜態變量    //靜態方法中調用非靜態變量    public static void print(){      //創建類的對象      HelloWorld hello=new HelloWorld();      //通過對象來實現在靜態方法中調用非靜態變量      System.out.println(“歡迎您:”+hello.name+”!”);      //靜態方法中可以直接調用靜態變量      System.out.prinltn(“歡迎喜歡”+program+”的”+hello.name);    }  }

5.在普通成員方法中,則可以直接訪問同類的非靜態變量和靜態變量 

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

 6.靜態方法中不能直接調用非靜態方法,需要通過對象來訪問非靜態方法  

public class HellWorld{    String name = “Java”;//非靜態變量    static String hobby = “program ”;//靜態變量    //非靜態方法    public void show(){      System.out.println(“我是非靜態方法,不能被靜態方法直接調用。。。”);    }    //靜態方法    public static void show2(){      System.out.println(“我是靜態方法,可以直接被靜態方法調用”);    }    //靜態方法中通過對象來調用非靜態方法。可以直接調用靜態方法    public static void print(){      //創建類的對象      HelloWorld hello=new HelloWorld();      //通過對象來實現在靜態方法中調用非靜態方法      hello.show();      //靜態方法中可以直接調用靜態方法      show2();    }  }

二、Java 中的 static 使用之靜態初始化塊

1.在類的聲明中,可以包含多個初始化塊,當創建類的實例時,就會依次執行這些代碼塊。如果使用 static 修飾初始化塊,就稱為靜態初始化塊。

2.實例變量和類變量的區別:

a) 存放位置:類變量隨著類的加載而存放于方法區中;實例變量隨著對象的建立存在于堆內存中。

b) 生命周期:類變量生命周期最長,隨著類的消失而消失;實例變量生命周期隨著對象的消失而消失。

3.靜態初始化塊只在類加載時執行,且只會執行一次,同時靜態初始化塊只能給靜態變量賦值,不能初始化普通的成員變量。程序運行時,靜態初始化快先被執行并優先于主函數,然后執行普通初始化塊,最后才執行構造方法。

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

 運行結果:

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 喀什市| 洪雅县| 黔西| 嘉义县| 海阳市| 循化| 玉环县| 金山区| 抚州市| 沅江市| 大港区| 长汀县| 本溪市| 三江| 志丹县| 盐亭县| 玉山县| 甘孜| 临沭县| 那曲县| 龙泉市| 砀山县| 都江堰市| 错那县| 宁蒗| 林芝县| 温宿县| 平山县| 鄄城县| 宁德市| 全南县| 清流县| 龙井市| 东宁县| 湘西| 张北县| 永安市| 交口县| 平南县| 前郭尔| 班玛县|