一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

服務(wù)器之家 - 編程語(yǔ)言 - JAVA教程 - 詳解Java中final的用法

詳解Java中final的用法

2019-12-31 14:53JiJie.LianG JAVA教程

本文主要介紹了Java中final的使用方法,final是java的關(guān)鍵字,本文就詳細(xì)說明一下它的使用方法,需要的朋友可以參考下

概念

final 具有“不可改變的”的含義,可以修飾 非抽象類、非抽象成員方法和變量。

  • 用 final 修飾的類不能被繼承,沒有子類。
  • 用 final 修飾的方法不能被子類的方法覆蓋(重寫)。
  • 用 final 修飾的變量表示常量,只能被賦一次值(聲明變量的時(shí)候)。

注:

final 不能用來修飾構(gòu)造方法,因?yàn)?ldquo;方法覆蓋”這一概念僅適用于類的成員方法,而不適用于類的構(gòu)造方法,父類的構(gòu)造方法和子類的構(gòu)造方法之間不存在覆蓋的關(guān)系,因此用final修飾構(gòu)造方法沒有任何意義。

父類中用 private 修飾的方法不能被子類的方法所覆蓋,因此可以理解為 private 類型的方法默認(rèn)是 final 類型的。

final 類

把類定義為 final,使這個(gè)類不能被繼承。具體使用場(chǎng)景如下:

  • 不是專門為繼承而設(shè)計(jì)的類,類本身的方法之間有復(fù)雜的調(diào)用關(guān)系。如果隨意創(chuàng)建這些類的子類,子類有可能會(huì)錯(cuò)誤的修改了父類的實(shí)現(xiàn)細(xì)節(jié)。
  • 處于安全的原因,類的實(shí)現(xiàn)細(xì)節(jié)不允許在被擴(kuò)展。
  • 在創(chuàng)建對(duì)象模型時(shí),確信這個(gè)類不會(huì)再被擴(kuò)展。

例如:JDK中的java.lang.String 類被定義為 final 類型。

public final class String{...}

final 方法

在某些情況下,出于安全原因,父類不允許子類覆蓋某個(gè)方法,此時(shí)可以把這個(gè)方法聲明為 final 類型。

例如:JDK中的java.lang.Object 類中,getClass()方法為 final 類型,而 equals() 方法不為 final 類型。

所有 Object 的子類都可以覆蓋 equals() 方法,但不能覆蓋 getClass() 方法。

final 變量

用 final 修飾的變量表示取值不會(huì)改變的常量。

例如:JDK中 java.lang.Integer 類中定義了兩個(gè)常量。

public static final int   MIN_VALUE = 0x80000000;

public static final int   MAX_VALUE = 0x7fffffff;

final 變量具有以下特征:

  • final修飾符可以修飾靜態(tài)變量、成員變量和局部變量,分別表示靜態(tài)常量、實(shí)例常量和局部常量。
?
1
2
3
4
5
public class Demo{
 public static final int MAX_VALUE = 23//靜態(tài)常量
 public static final int MIN_VALUE = 10//靜態(tài)常量
 private final Date birthday = new Date(); //成員常量
}

 

靜態(tài)常量一般以大寫字母命名,單詞之間以“_”符號(hào)分開。

  • final修飾的成員變量必須初始化。
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
public class FinalTest {
  final int a = 1//成員常量 默認(rèn)初始化
  static final int b = 2//靜態(tài)常量 默認(rèn)初始化
  final int c;  //成員常量
  static final int d;  //靜態(tài)常量
  
  public FinalTest(){
    c = 3//成員常量 未默認(rèn)初始化,可在構(gòu)造函數(shù)中初始化
  }
  
  static {
    d = 4//靜態(tài)常量 未默認(rèn)初始化,可在靜態(tài)代碼塊中初始化
  }
}

 

final 變量只能賦一次值,如果將引用類型的變量用 final 修飾,該變量只能始終引用一個(gè)對(duì)象,但可以改變對(duì)象的內(nèi)容。

?
1
2
3
4
5
6
7
8
9
10
11
public class FinalTest {
  String str = "";
  public void print(){
    System.out.println(str);
  
  public static void main(String[] args){
    final FinalTest finalTest = new FinalTest();
    finalTest.str = "xixihaha";
    finalTest.print();
  }
}

總結(jié):

實(shí)際程序中,通過 final 修飾符來定義常量,目的為:

  • 提高程序的安全性。
  • 提高代碼可維護(hù)性。
  • 提供代碼可讀性。

 以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助。

延伸 · 閱讀

精彩推薦
  • JAVA教程使用jdk7的nio2操作文件拷貝和剪切示例

    使用jdk7的nio2操作文件拷貝和剪切示例

    使用jdk7的NIO2進(jìn)行文件或文件夾的拷貝移動(dòng)操作。可以自動(dòng)創(chuàng)建路徑,差異化更新文件,簡(jiǎn)單的出錯(cuò)重連機(jī)制 ...

    java教程網(wǎng)4932019-11-05
  • JAVA教程Java內(nèi)部類的繼承(全)

    Java內(nèi)部類的繼承(全)

    這篇文章主要介紹了Java內(nèi)部類的繼承,大家都知道JAVA內(nèi)部類的構(gòu)造器必須連接指向其外圍類對(duì)象的引用,所以在繼承內(nèi)部類的時(shí)候,需要在導(dǎo)出類的構(gòu)造...

    尚未初始化3702019-12-29
  • JAVA教程推薦幾本學(xué)習(xí)java的書籍

    推薦幾本學(xué)習(xí)java的書籍

    本文給大家推薦了幾本學(xué)習(xí)Java的書籍,非常適合Java的初學(xué)者,有需要的朋友可以看看 ...

    hebedich4222019-12-03
  • JAVA教程java實(shí)現(xiàn)jframe透明窗體示例

    java實(shí)現(xiàn)jframe透明窗體示例

    這篇文章主要介紹了java實(shí)現(xiàn)jframe透明窗體示例,需要的朋友可以參考下 ...

    java教程網(wǎng)1562019-11-13
  • JAVA教程J2SE與c#的幾點(diǎn)比較

    J2SE與c#的幾點(diǎn)比較

    這篇文章主要介紹了J2SE與c#的幾點(diǎn)比較,是看完馬士兵老師的J2SE視頻教程有感而寫,需要的朋友可以參考下 ...

    junjie1292019-11-27
  • JAVA教程一些java二進(jìn)制的相關(guān)基礎(chǔ)知識(shí)

    一些java二進(jìn)制的相關(guān)基礎(chǔ)知識(shí)

    這篇文章主要介紹了一些java二進(jìn)制的相關(guān)基礎(chǔ)知識(shí),在Java語(yǔ)言中byte代表最小計(jì)量單位,byte由8位2進(jìn)制數(shù)組成。,需要的朋友可以參考下...

    匠心零度3122019-06-27
  • JAVA教程java中Struts2文件上傳問題詳解

    java中Struts2文件上傳問題詳解

    文件上傳和文件下載是我們?cè)趙eb應(yīng)用程序中常用的兩個(gè)功能,在java中,實(shí)現(xiàn)這兩種功能的方式也有很多種,其中struts2就給我們提供了一種算是比較簡(jiǎn)單的...

    hebedich2802019-12-25
  • JAVA教程java實(shí)現(xiàn)的新浪微博分享代碼實(shí)例

    java實(shí)現(xiàn)的新浪微博分享代碼實(shí)例

    這篇文章主要介紹了java實(shí)現(xiàn)的新浪微博分享代碼實(shí)例,是通過新浪API獲得授權(quán),然后接受客戶端請(qǐng)求的數(shù)據(jù),第三方應(yīng)用發(fā)送請(qǐng)求消息到微博,喚起微博分...

    hebedich2522019-12-13
主站蜘蛛池模板: 国产三级跑 | 亚洲美日韩 | 91夜夜人人揉人人捏人人添 | 亚洲国产第一区二区香蕉日日 | 免费高清在线视频色yeye | 四虎永久免费地址在线网站 | 亚洲AV精品一区二区三区不卡 | chinese圣水黄金调教 | 日本美女xx | 添逼逼视频 | 美女张开腿让男人桶的 视频 | 小SAO货边洗澡边CAO你动漫 | 大片毛片女女女女女女女 | 九九热这里只有精品2 | 国产成人影院一区二区 | 91chinese 永久免费 | tkvk视频| 把美女屁股眼扒开图片 | 99在线在线视频免费视频观看 | 五月桃花网婷婷亚洲综合 | 亚洲欧美日韩精品 | 欧美专区在线播放 | 女仆色在线观看 | 亚洲va在线va天堂va偷拍 | 亚洲AV蜜桃永久无码精品红樱桃 | 女人张开腿让男人做爽爽 | 精品免费国产一区二区三区 | 日韩性生活片 | 奇米影视4444 | 高h全肉动漫在线观看免费 高h辣h双处全是肉军婚 | 国产一级特黄aa大片在线 | 免费一级特黄特色大片 | 欧美一卡二卡科技有限公司 | 九九热这里只有精品视频免费 | 日本xxxx19| 爽好紧别夹宝贝叫大声点护士 | 男人操女人动图 | 热99精品视频 | 国产99er66在线视频 | 免费视频专区一国产盗摄 | 日韩欧美亚洲一区精选 |