更新時間:2020-11-18 17:17:52 來源:動力節(jié)點 瀏覽1270次
無論是在平時的開發(fā)中還是求職面試的過程中,我們都會經(jīng)常遇見static關(guān)鍵字。因此,掌握static關(guān)鍵字的用法成為了我們的當(dāng)務(wù)之急,本文就來向大家介紹static關(guān)鍵字用法以解燃眉之急。
在正式學(xué)習(xí)static關(guān)鍵字的用法之前,我們先要弄懂static關(guān)鍵字的基本概念,不然學(xué)起static關(guān)鍵字的用法就像是無萍之水,知其然而不知其所以然。我們可以一句話來概括static關(guān)鍵字:方便在沒有創(chuàng)建對象的情況下來進行調(diào)用。也就是說:被static關(guān)鍵字修飾的不需要創(chuàng)建對象去調(diào)用,直接根據(jù)類名就可以去訪問。對于這個概念,下面根據(jù)static關(guān)鍵字的四個基本使用來描述。
了解了static關(guān)鍵字的基本概念,然后我們再來學(xué)習(xí)static關(guān)鍵字用法。
1、static關(guān)鍵字修飾類
java里面static一般用來修飾成員變量或函數(shù)。但有一種特殊用法是用static修飾內(nèi)部類,普通類是不允許聲明為靜態(tài)的,只有內(nèi)部類才可以。下面看看static關(guān)鍵字用法是怎么樣的?
public class StaticTest {
//static關(guān)鍵字修飾內(nèi)部類
public static class InnerClass{
InnerClass(){
System.out.println("============= 靜態(tài)內(nèi)部類=============");
}
public void InnerMethod() {
System.out.println("============= 靜態(tài)內(nèi)部方法=============");
}
}
public static void main(String[] args) {
//直接通過StaticTest類名訪問靜態(tài)內(nèi)部類InnerClass
InnerClass inner=new StaticTest.InnerClass();
//靜態(tài)內(nèi)部類可以和普通類一樣使用
inner.InnerMethod();
}
}
/* 輸出是
* ============= 靜態(tài)內(nèi)部類=============
* ============= 靜態(tài)內(nèi)部方法=============
*/
如果沒有用static修飾InterClass,則只能new 一個外部類實例。再通過外部實例創(chuàng)建內(nèi)部類。
2、static關(guān)鍵字修飾方法
修飾方法的時候,其實跟類一樣,可以直接通過類名來進行調(diào)用:
public class StaticMethod {
public static void test() {
System.out.println("============= 靜態(tài)方法=============");
};
public static void main(String[] args) {
//方式一:直接通過類名
StaticMethod.test();
//方式二:
StaticMethod fdd=new StaticMethod();
fdd.test();
}
}
3、static關(guān)鍵字修飾變量
被static修飾的成員變量叫做靜態(tài)變量,也叫做類變量,說明這個變量是屬于這個類的,而不是屬于是對象,沒有被static修飾的成員變量叫做實例變量,說明這個變量是屬于某個具體的對象的。
我們同樣可以使用上面的方式進行調(diào)用變量:
public class StaticVar {
private static String name="java的架構(gòu)師技術(shù)棧";
public static void main(String[] args) {
//直接通過類名
StaticVar.name;
}
}
4、static關(guān)鍵字修飾代碼塊
靜態(tài)代碼塊在類第一次被載入時執(zhí)行,在這里主要是想驗證一下,類初始化的順序。
父類靜態(tài)變量
父類靜態(tài)代碼塊
子類靜態(tài)變量
子類靜態(tài)代碼塊
父類普通變量
父類普通代碼塊
父類構(gòu)造函數(shù)
子類普通變量
子類普通代碼塊
子類構(gòu)造函數(shù)
代碼驗證一下:
首先我們定義一個父類
public class Father{
//父類靜態(tài)代碼塊
static{
System.out.println("Father static");
}
//父類構(gòu)造函數(shù)
public Father(){
System.out.println("Father constructor");
}
}
然后定義一個子類
public class Son extends Father{
//靜態(tài)代碼塊
static{
System.out.println("Son static");
}
//構(gòu)造方法
public Son(){
System.out.println("Son constructor");
}
public static void main(String[] args) {
new Son();
}
}
以上就是對static關(guān)鍵字用法的介紹,總的來說還是很簡單的嗎,我們只要牢記概念,梳清條理,就能掌握static關(guān)鍵字用法。想要掌握更多的Java關(guān)鍵字用法的相關(guān)知識可以觀看本站的Java SE教程,超高質(zhì)量的Java關(guān)鍵字用法教程等你來學(xué)!