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();
}
}
運轉成果: