大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國(guó)咨詢/投訴熱線:400-8080-105
動(dòng)力節(jié)點(diǎn)LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁(yè) 學(xué)習(xí)攻略 Java中static關(guān)鍵字的作用與用法

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

更新時(shí)間:2020-07-02 16:30:22 來(lái)源:動(dòng)力節(jié)點(diǎn) 瀏覽2251次

一、static關(guān)鍵字的特點(diǎn):

static是一個(gè)修飾符,用于修飾類的成員方法、類的成員變量,另外可以編寫static代碼塊來(lái)優(yōu)化程序性能。

1.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)成員方法/變量的。例如:

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

class?Person{
????private?Date?birthDate;
?
????public?Person(Date?birthDate)?{
????????this.birthDate?=?birthDate;
????}
?
????boolean?isBornBoomer()?{
????????Date?startDate?=?Date.valueOf("1946");
????????Date?endDate?=?Date.valueOf("1964");
????????return?birthDate.compareTo(startDate)>=0?&&?birthDate.compareTo(endDate)?<?0;
????}
}

isBornBoomer是用來(lái)判斷一個(gè)人是否是1946-1964年出生的,而每次isBornBoomer被調(diào)用的時(shí)候,都會(huì)生成startDate和birthDate兩個(gè)對(duì)象,造成了空間浪費(fèi),如果改成下面這樣效率會(huì)更高:

class?Person?{
????private?Date?birthDate;
????private?static?Date?startDate,?endDate;
?
????static?{
????????startDate?=?Date.valueOf("1946");
????????endDate?=?Date.valueOf("1964");
????}
?
????public?Person(Date?birthDate)?{
????????this.birthDate?=?birthDate;
????}
?
????boolean?isBornBoomer()?{
????????return?birthDate.compareTo(startDate)?>=?0?&&?birthDate.compareTo(endDate)?<?0;
????}
}

因此,很多時(shí)候會(huì)將一些只需要進(jìn)行一次的初始化操作都放在static代碼塊中進(jìn)行。

二、static關(guān)鍵字的誤區(qū)

1.與C/C++中的static不同,Java中的static關(guān)鍵字不會(huì)影響到變量的變量或者方法的作用域。在Java中能夠影響到訪問(wèn)權(quán)限的只有private、public、protected這幾個(gè)關(guān)鍵字。示例如下:

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

提示錯(cuò)誤,說(shuō)明static關(guān)鍵字并不會(huì)改變變量和方法的訪問(wèn)權(quán)限。

2.雖然對(duì)于靜態(tài)方法來(lái)說(shuō)沒(méi)有this,但是我們?cè)诜庆o態(tài)方法中能夠通過(guò)this訪問(wèn)靜態(tài)方法成員變量。如下:

public?class?Test?{
????static?int?value?=?11;
????public?static?void?main(String[]?args)?{
????????new?Test().printValue();
????}
????private?void?printValue()?{
????????int?value?=?22;
????????System.out.println(this.value);
????}
}
輸出的結(jié)果是:11

這里的this表示的是當(dāng)前對(duì)象,那么通過(guò)new Test()來(lái)調(diào)用printValue的話,當(dāng)前對(duì)象就是通過(guò)new Test()生成的對(duì)象。而static變量是被對(duì)象所享有的,因此在printValue中的this.value的值毫無(wú)疑問(wèn)是11。在printValue方法內(nèi)部的value是局部變量,根本不可能與this關(guān)聯(lián),所以輸出11。需要記住的是:靜態(tài)成員變量雖然獨(dú)立于對(duì)象,但是不代表不可以通過(guò)對(duì)象去訪問(wèn),所有的靜態(tài)方法和靜態(tài)變量都可以通過(guò)對(duì)象訪問(wèn)(只要權(quán)限足夠)。

3.在C/C++中static關(guān)鍵字是可以作用于局部變量的,但是在Java中是不允許使用static修飾局部變量的。這是Java語(yǔ)法的規(guī)定。

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

以上就是動(dòng)力節(jié)點(diǎn)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ù)。

提交申請(qǐng)后,顧問(wèn)老師會(huì)電話與您溝通安排學(xué)習(xí)

  • 全國(guó)校區(qū) 2025-04-24 搶座中
  • 全國(guó)校區(qū) 2025-05-15 搶座中
  • 全國(guó)校區(qū) 2025-06-05 搶座中
  • 全國(guó)校區(qū) 2025-06-26 搶座中
免費(fèi)課程推薦 >>
技術(shù)文檔推薦 >>
主站蜘蛛池模板: 五月色婷婷六月噜噜 | 国产片91人成在线观看 | 美女女女女女女bbbbbb毛片 | 国产精品视频公开费视频 | 久久亚洲精品一区二区三区浴池 | 91麻豆精品国产91久久久久 | 伊人色播 | 99在线精品免费视频九九视 | 久久久久久日本一区99 | 在线精品国产第一页 | 伊人二区| 九九热在线精品 | 美女久久久久久久久久久 | 欧美精品 在线播放 | 99精品国产高清一区二区麻豆 | 国产精品福利久久 | 婷婷激情五月 | 欧美毛片性视频区 | 天天干夜夜操视频 | 毛片大全免费 | 国产成人精品综合久久久 | 日本在线精品视频 | 韩国欧美一级毛片免费 | 老太婆性杂交毛片 | 亚洲精品久久久久久久久久久网站 | 久久综合九色综合97婷婷群聊 | 伊人在线视频 | 久久这里一区二区精品 | 久久久久久99精品 | 最新午夜韩国理论片77网 | 日韩一级视频免费观看 | 亚洲综合综合在线 | 亚洲国产精品久久综合 | 亚洲精品日本一区二区在线 | 免费毛片a线观看 | 国产一级毛片欧美视频 | 激情一区二区三区成人 | 最近中文字幕无免费视频 | 日本在线观看中文字幕 | 亚洲欧美日韩综合精品网 | 一本伊大人香蕉高清在线观看 |