摘要:導(dǎo)入包注意使用了關(guān)鍵字上面使用了關(guān)鍵字之后,可以直接使用中的方法。通過關(guān)鍵字調(diào)用有參構(gòu)造方法控制臺輸出總結(jié)屬性和方法可以再沒有實例化對象的時候直接由類名稱進(jìn)行調(diào)用。屬性保存在全局?jǐn)?shù)據(jù)區(qū)。
前面兩篇分別介紹了static的屬性以及方法。本篇就做一個收尾,介紹下剩下的。
在之前的總結(jié):
不管多少個對象,都使用同一個 static 屬性
使用 static 方法可以避免掉用實例化方法之后才能調(diào)用的限制。
導(dǎo)入 static 類的包 靜態(tài)導(dǎo)入包靜態(tài)導(dǎo)包用法,將類的方法直接導(dǎo)入到當(dāng)前類中,從而直接使用“方法名”即可調(diào)用類方法,更加方便。但是看上面的就不是特別直觀,不便于閱讀代碼。
Utils.java
package statics.utils; public class Utils { public static int int2Str(String str) { return Integer.valueOf(str); } public static int add(int x, int y) { return x+y; } }
Test.java
// 導(dǎo)入包 注意使用了 static 關(guān)鍵字 import static statics.utils.Utils.*; public class Test { public static void main(String[] args) { // 上面使用了 static 關(guān)鍵字之后,可以直接使用 Utils 中的方法。 add(1, 2); } }通過 類名.方法名
Test.java
// 導(dǎo)入包 注意沒有使用 static 關(guān)鍵字了 import statics.utils.Utils; public class Test { public static void main(String[] args) { // 上面使用了 static 關(guān)鍵字之后,可以直接使用 Utils 中的方法。 Utils.add(1, 2); } }static 的實例用法
對于了解了static 方法之后,在來看幾個實際的例子回顧與加深下對 static的理解。
示例一:實現(xiàn)類實例化的統(tǒng)計需求
希望在每次實例化對象的時候,都打印一個信息,輸出產(chǎn)生第 x 個實例化對象。
Test.java
class Book { static int Index = 0; Book(){ Index++; System.out.println("實例化對象第"+ Index + "個"); } } public class Test { public static void main(String[] args) { new Book(); new Book(); new Book(); new Book(); new Book(); new Book(); } }
控制臺輸出
實例化對象第1個 實例化對象第2個 實例化對象第3個 實例化對象第4個 實例化對象第5個 實例化對象第6個示例二:實現(xiàn)屬性的自動設(shè)置
需求
例如:現(xiàn)在某一個類有一個無參構(gòu)造方法,一個有參構(gòu)造方法,有參構(gòu)造主要的目的是傳遞一個 title 屬性,但是希望調(diào)用的不管是 有參構(gòu)造方法還是無參構(gòu)造方法,都可以為 title 設(shè)置內(nèi)容,希望內(nèi)容不要重復(fù)。
Test.java
class Book { private String title; static int Index = 0; Book() { // 通過 this 關(guān)鍵字調(diào)用有參構(gòu)造方法 this("NOTITLE" + Index++); } Book(String title) { this.title = title; } public String getTitle() { return this.title; } } public class Test { public static void main(String[] args) { System.out.println(new Book("java").getTitle()); System.out.println(new Book().getTitle()); System.out.println(new Book().getTitle()); } }
控制臺輸出
java NOTITLE0 NOTITLE1總結(jié)
static 屬性和方法可以再沒有實例化對象的時候直接由類名稱進(jìn)行調(diào)用。
static 屬性保存在全局?jǐn)?shù)據(jù)區(qū)。內(nèi)存區(qū)一共有四個:棧內(nèi)存、堆內(nèi)存、全局?jǐn)?shù)據(jù)區(qū)(存放所有的數(shù)據(jù))、全局代碼區(qū)(存放所有的方法)
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/72382.html
摘要:用戶態(tài)不能干擾內(nèi)核態(tài)所以指令就有兩種特權(quán)指令和非特權(quán)指令不同的狀態(tài)對應(yīng)不同的指令。非特權(quán)指令所有程序均可直接使用。用戶態(tài)常態(tài)目態(tài)執(zhí)行非特權(quán)指令。 這是我今年從三月份開始,主要的大廠面試經(jīng)過,有些企業(yè)面試的還沒來得及整理,可能有些沒有帶答案就發(fā)出來了,還請各位先思考如果是你怎么回答面試官?這篇文章會持續(xù)更新,請各位持續(xù)關(guān)注,希望對你有所幫助! 面試清單 平安產(chǎn)險 飛豬 上汽大通 浩鯨科...
摘要:注解提供了一種安全的類似注釋的機(jī)制,用來將任何的信息或元數(shù)據(jù)與程序元素類方法成員變量等進(jìn)行關(guān)聯(lián)。為程序的元素類方法成員變量加上更直觀更明了的說明,這些說明與程序的業(yè)務(wù)邏輯無關(guān),并且提供給指定的工具或框架使用。 什么是注解? Annotation 是 Java5 之后開始引入的新特性,中文為注解。注解提供了一種安全的類似注釋的機(jī)制,用來將任何的信息或元數(shù)據(jù)(metadata)與程序元素(...
摘要:我的是忙碌的一年,從年初備戰(zhàn)實習(xí)春招,年三十都在死磕源碼,三月份經(jīng)歷了阿里五次面試,四月順利收到實習(xí)。因為我心理很清楚,我的目標(biāo)是阿里。所以在收到阿里之后的那晚,我重新規(guī)劃了接下來的學(xué)習(xí)計劃,將我的短期目標(biāo)更新成拿下阿里轉(zhuǎn)正。 我的2017是忙碌的一年,從年初備戰(zhàn)實習(xí)春招,年三十都在死磕JDK源碼,三月份經(jīng)歷了阿里五次面試,四月順利收到實習(xí)offer。然后五月懷著忐忑的心情開始了螞蟻金...
摘要:中的詳解必修個多線程問題總結(jié)個多線程問題總結(jié)有哪些源代碼看了后讓你收獲很多,代碼思維和能力有較大的提升有哪些源代碼看了后讓你收獲很多,代碼思維和能力有較大的提升開源的運(yùn)行原理從虛擬機(jī)工作流程看運(yùn)行原理。 自己實現(xiàn)集合框架 (三): 單鏈表的實現(xiàn) 自己實現(xiàn)集合框架 (三): 單鏈表的實現(xiàn) 基于 POI 封裝 ExcelUtil 精簡的 Excel 導(dǎo)入導(dǎo)出 由于 poi 本身只是針對于 ...
閱讀 4060·2021-09-27 13:35
閱讀 1180·2021-09-24 09:48
閱讀 2967·2021-09-22 15:42
閱讀 2400·2021-09-22 15:28
閱讀 3209·2019-08-30 15:43
閱讀 2680·2019-08-30 13:52
閱讀 3036·2019-08-29 12:48
閱讀 1541·2019-08-26 13:55