奶头挺立呻吟高潮av全片,成人试看120秒体验区,性欧美极品v,A片高潮抽搐揉捏奶头视频

java語(yǔ)言

Java final 修飾符知識(shí)點(diǎn)總結(jié)

時(shí)間:2024-09-28 12:19:47 java語(yǔ)言 我要投稿
  • 相關(guān)推薦

Java final 修飾符知識(shí)點(diǎn)總結(jié)范例

  final從字面上理解含義為“最后的,最終的”。在Java中也同樣表示出此種含義。

Java final 修飾符知識(shí)點(diǎn)總結(jié)范例

  final可以用來(lái)修飾變量(包括類屬性、對(duì)象屬性、局部變量和形參)、方法(包括類方法和對(duì)象方法)和類。

  1. final修飾類:

  final修飾類即表示此類已經(jīng)是“最后的、最終的”含義。因此,用final修飾的類不能被繼承,即不能擁有自己的子類。

  如果視圖對(duì)一個(gè)已經(jīng)用final修飾的類進(jìn)行繼承,在編譯期間或發(fā)生錯(cuò)誤。

  2. final修飾方法:

  final修飾的方法表示此方法已經(jīng)是“最后的、最終的”含義,亦即此方法不能被重寫(可以重載多個(gè)final修飾的方法)。

  此處需要注意的一點(diǎn)是:因?yàn)橹貙懙那疤崾亲宇惪梢詮母割愔欣^承此方法,如果父類中final修飾的方法同時(shí)訪問(wèn)控制權(quán)限為private,

  將會(huì)導(dǎo)致子類中不能直接繼承到此方法,因此,此時(shí)可以在子類中定義相同的方法名和參數(shù),此時(shí)不再產(chǎn)生重寫與final的矛盾,而是

  在子類中重新定義了新的方法。

  public class B extends A {  public static void main(String[] args) {  }  public void getName() {      }}class A {  /**   * 因?yàn)閜rivate修飾,子類中不能繼承到此方法,因此,子類中的getName方法是重新定義的、   * 屬于子類本身的方法,編譯正常   */  private final void getName() {      }  /* 因?yàn)閜blic修飾,子類可以繼承到此方法,導(dǎo)致重寫了父類的final方法,編譯出錯(cuò)  public final void getName() {    }  */}

  3. final 修飾變量:

  final修飾的變量表示此變量是“最后的、最終的”含義。一旦定義了final變量并在首次為其顯示初始化后,final修飾的變量值不可被改變。

  這里需要注意以下幾個(gè)問(wèn)題:

  1. final修飾的變量,無(wú)論是類屬性、對(duì)象屬性、形參還是局部變量,這些變量都是需要進(jìn)行顯示初始化(即為其顯示指定初始值)。

  對(duì)于final修飾的形參,由于是實(shí)參傳遞過(guò)來(lái)的,很好理解。

  對(duì)于final修飾的局部變量,與未用final修飾的變量一樣,都是需要顯示初始化。即局部變量都是需要顯示初始化的。

  對(duì)于一般的類屬性和對(duì)象屬性,由類和對(duì)象的初始化過(guò)程中可以看出,首先都進(jìn)行了默認(rèn)初始化。然后對(duì)有顯示賦值的變量才再進(jìn)行顯示初始化。

  但對(duì)final修飾的類屬性和對(duì)象屬性而言,如果不顯示初始化,其默認(rèn)將是進(jìn)行默認(rèn)初始化后的值,這與final本身出發(fā)點(diǎn)矛盾,因此,Java語(yǔ)法規(guī)定:

  final修飾的類屬性和變量屬性必須要進(jìn)行顯示初始化賦值。

  另外,無(wú)論對(duì)于基本數(shù)據(jù)類型還是引用數(shù)據(jù)類型,final修飾的變量都是首次顯示初始化后值都不能修改。對(duì)于基本數(shù)據(jù)類型,很好理解。對(duì)于引用

  數(shù)據(jù)類型,引用變量指向的是實(shí)際的對(duì)象,但其存儲(chǔ)的是所指向?qū)ο蟮牡刂,因此,其值不能修改并不意味著其所指向的?duì)象不能修改。

  4. final修飾變量后導(dǎo)致的“宏替換”/"宏變量"問(wèn)題

  Java 中宏變量/宏替換指的是在java代碼中在編譯期某些變量能夠直接被其本身的值所替換,編譯到.class文件中。因此,編譯后的.class文件中已經(jīng)不存在此變了。

  在String類型的變量中,有時(shí)候經(jīng)常遇到如下情況:

  public class Test {  public static void main(String[] args) {    String country = "China";    String name = "qqyumidi";    String userInfo = country + name; //編譯后此處依然是country和name變量    String user = "China" + "qqyumidi"; //編譯后此處直接變成Chinaqqyumidi  }}

  在上述代碼中的第9行,編譯后的變量結(jié)果直接為Chinaqqyumidi。而第8行代碼中,由于country和name都是普通的變量,編譯器無(wú)法在編譯時(shí)直接確定userInfo的值,因此

  此處編譯后結(jié)果不直接是Chinaqqyumidi。

  但是,如果希望第8行中的代碼在編譯期直接就能表示為Chinaqqyumidi,就需要用到final修飾符對(duì)country和name變量進(jìn)行修飾。

  原因:final修飾符修飾的變量在由于其本身的特性,在編譯期就能直接確定其值,且此值不可變。在編譯過(guò)程中,可以直接將其變量直接轉(zhuǎn)換成其值本身去表示。

  public class Test {  public static void main(String[] args) {    final String country = "China";    final String name = "qqyumidi";    String userInfo = country + name; //編譯后此處直接是Chianqqyumidi  }}


【Java final 修飾符知識(shí)點(diǎn)總結(jié)】相關(guān)文章:

關(guān)于Java 的修飾符09-06

Java基礎(chǔ)知識(shí)點(diǎn)07-07

Java基礎(chǔ)語(yǔ)法知識(shí)點(diǎn)07-31

java集合分類總結(jié)09-25

計(jì)算機(jī)二級(jí)考試JAVA知識(shí)點(diǎn)集錦09-11

計(jì)算機(jī)二級(jí)考試java常考知識(shí)點(diǎn)09-06

2017計(jì)算機(jī)二級(jí)JAVA重要知識(shí)點(diǎn)復(fù)習(xí)09-05

Java多線程問(wèn)題總結(jié)10-24

java教程之Java編程基礎(chǔ)09-12

主站蜘蛛池模板: 成安县| 梨树县| 祁阳县| 秦皇岛市| 延津县| 察哈| 上饶市| 甘孜县| 土默特右旗| 广安市| 红桥区| 探索| 金平| 温州市| 天台县| 栖霞市| 平度市| 长乐市| 福清市| 浑源县| 和平区| 镇江市| 建昌县| 永嘉县| 丰原市| 马龙县| 波密县| 大足县| 德安县| 通化县| 女性| 靖边县| 邻水| 白城市| 延长县| 威远县| 定陶县| 彭州市| 永康市| 库尔勒市| 滦平县|