Java中static關(guān)鍵字的用法

Java中static關(guān)鍵字的用法

天津卓眾教育      2022-03-09 12:00:01     23

Java中static關(guān)鍵字的用法,static關(guān)鍵字的用途在《Java編程思想》P86頁(yè)有這樣一段話:static方法就是沒(méi)有this的方法。在static方法內(nèi)部不能調(diào)用非靜態(tài)方法

課程價(jià)格 請(qǐng)咨詢

上課時(shí)段: 授課校區(qū):

詳細(xì)介紹

static關(guān)鍵字的用途

在《Java編程思想》P86頁(yè)有這樣一段話:“static方法就是沒(méi)有this的方法。在static方法內(nèi)部不能調(diào)用非靜態(tài)方法,反過(guò)來(lái)是可以的。而且可以在沒(méi)有創(chuàng)建任何對(duì)象的前提下,僅僅通過(guò)類本身來(lái)調(diào)用static方法。這實(shí)際上正是static方法的主要用途。”這段話雖然只是說(shuō)明了static方法的特殊之處,但是可以看出static關(guān)鍵字的基本作用,簡(jiǎn)而言之,一句話來(lái)描述就是:方便在沒(méi)有創(chuàng)建對(duì)象的情況下來(lái)進(jìn)行調(diào)用(方法/變量)。很顯然,被static關(guān)鍵字修飾的方法或者變量不需要依賴于對(duì)象來(lái)進(jìn)行訪問(wèn),只要類被加載了,就可以通過(guò)類名去進(jìn)行訪問(wèn)。static可以用來(lái)修飾類的成員方法、類的成員變量,另外可以編寫static代碼塊來(lái)優(yōu)化程序性能。

static方法

static方法一般稱作靜態(tài)方法,由于靜態(tài)方法不依賴于任何對(duì)象就可以進(jìn)行訪問(wèn),因此對(duì)于靜態(tài)方法來(lái)說(shuō),是沒(méi)有this的,因?yàn)樗灰栏接谌魏螌?duì)象,既然都沒(méi)有對(duì)象,就談不上this了。并且由于這個(gè)特性,在靜態(tài)方法中不能訪問(wèn)類的非靜態(tài)成員變量和非靜態(tài)成員方法,因?yàn)榉庆o態(tài)成員方法/變量都是必須依賴具體的對(duì)象才能夠被調(diào)用。但是要注意的是,雖然在靜態(tài)方法中不能訪問(wèn)非靜態(tài)成員方法和非靜態(tài)成員變量,但是在非靜態(tài)成員方法中是可以訪問(wèn)靜態(tài)成員方法/變量的。舉個(gè)簡(jiǎn)單的例子:   

package?cn.bzu.look.dao;??????public?class?MyObject?{????	//非靜態(tài)變量????	private?String?str1?="property";????	//靜態(tài)變量????	private?static?String?str2?="staticProperty";????	????	public?MyObject()?{????		????	}????	//非靜態(tài)方法????	public?void?print1()?{????		System.out.println(str1);????		System.out.println(str2);????		print2();????	}	????	//靜態(tài)方法????	public?static??void?print2()?{????		//這一句報(bào)錯(cuò),報(bào)錯(cuò)信息是Cannot?make?a?static?reference?to?the?non-static?field?str1????		System.out.println(str1);????		System.out.println(str2);????		????		print1();????	}????}

以上就是天津卓眾教育java培訓(xùn)機(jī)構(gòu)的小編針對(duì)“Java中static關(guān)鍵字的用法”的內(nèi)容進(jìn)行的回答,希望對(duì)大家有所幫助,如有疑問(wèn),請(qǐng)?jiān)诰€咨詢,有專業(yè)老師隨時(shí)為你服務(wù)。

培訓(xùn)啦提醒您:交易時(shí)請(qǐng)核實(shí)對(duì)方資質(zhì),對(duì)于過(guò)大宣傳或承諾需謹(jǐn)慎!任何要求預(yù)付定金、匯款等方式均存在風(fēng)險(xiǎn),謹(jǐn)防上當(dāng)。