Java中的static的應用指南。本站提示廣大學習愛好者:(Java中的static的應用指南)文章只能為提供參考,不一定能成為您想要的結果。以下是Java中的static的應用指南正文
1、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(); } }
2、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(); } }
運轉成果: