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

java語言

Java中final關鍵字用法的講解

時間:2024-10-13 13:02:17 java語言 我要投稿
  • 相關推薦

Java中final關鍵字用法的講解

  1. final variable

  final variable 就是一個常量,一旦被初始化就不可以被改變。

  class Test1 { final double PI = 3.14; //常量的名稱最好大寫 public Test1(){ PI = 3.14; } void test(){ System.out.println("PI is: " + PI); } public static void main(String[] args){ Test1 t = new Test1(); t.test(); }}

  輸出:

  PI is: 3.14

  (1)Blank final variable

  在聲明時未初始化的 final variable 被稱作 blank final variable, blank final variable必須在 構造函數中被初始化,否則會拋出編譯錯誤。

  class Test1 { final double PI; Test1(){ PI = 3.14; //在構造函數中初始化 } void test(){ System.out.println("PI is: " + PI); } public static void main(String[] args){ Test1 t = new Test1(); t.test(); }}

  輸出:

  PI is: 3.14

  (2)Uninitialized static final variable

  在聲明階段未初始化的 static final variable 只能在靜態代碼塊中被初始化

  class Test1 { static final double PI; static { PI = 3.14; } void test(){ System.out.println("PI is: " + PI); } public static void main(String[] args){ Test1 t = new Test1(); t.test(); }}

  輸出:

  PI is: 3.14

  2. final method

  final method 不能被覆蓋。也就是說子類可以調用父類的 fianl method,但是不能覆蓋它。

  class Test { static final double PI = 3.14; final void test(){ System.out.println("PI is: " + PI); }}class Test1 extends Test{ public static void main(String[] args){ Test1 t = new Test1(); t.test(); }}

  輸出:

  PI is: 3.14

  3. final class

  final calss 不能被繼承

  final class Test1 { static final double PI = 3.14; final void test(){ System.out.println("PI is: " + PI); } public static void main(String[] args){ Test1 t = new Test1(); t.test(); }}

  輸出:

  PI is: 3.14

  PS:java.lang.String類為什么設計成 final 的?

  首先,先得清楚 final 這個關鍵字。

  final的出現就是為了為了不想改變,而不想改變的理由有兩點:設計或者效率。final 修飾的類是不被能繼承的,所以 final 修飾的類是不能被篡改的。

  了解了這一點,我們再看看問題:

  (1)從設計上講,

  A、確保它們不會在子類中改變語義。String類是final類,這意味著不允許任何人定義String的子類。換言之,如果有一個String的引用,它引用的一定是一個String對象,而不可能是其他類的對象。

  B、String 一旦被創建是不能被修改的,因為 java 設計者將 String 為可以共享的,下面這段是源碼中的注釋:

  (2)從效率上講:

  A、設計成final,JVM才不用對相關方法在虛函數表中查詢,而直接定位到String類的相關方法上,提高了執行效率。

  B、Java設計者認為共享帶來的效率更高。

  總而言之,就是要保證 java.lang.String 引用引用的對象一定是 java.lang.String的對象,而不是引用它的子孫類,這樣才能保證它的效率和安全。

【Java中final關鍵字用法的講解】相關文章:

Java中通過final關鍵字面向對象的詳解08-09

理解java中的關鍵字06-22

解析Java中volatile關鍵字09-28

Java編程中this關鍵字與super關鍵字的使用方法08-23

Java中的多態用法實例分析10-23

Java中ArrayList類的使用用法07-12

舉例講解Java中的多線程范文欣賞06-16

java的import關鍵字是什么09-03

java ClassLoader機制講解07-31

PHP中this關鍵字06-08

主站蜘蛛池模板: 定边县| 吉隆县| 墨江| 甘肃省| 衡阳市| 深州市| 广汉市| 玉门市| 墨江| 汽车| 靖江市| 商丘市| 万州区| 瑞丽市| 崇文区| 定兴县| 隆化县| 巴林左旗| 临武县| 德阳市| 无棣县| 丰城市| 泸州市| 肇庆市| 丹江口市| 新田县| 无棣县| 衡水市| 凤庆县| 威远县| 泌阳县| 建平县| 阜康市| 小金县| 芦溪县| 兴义市| 偃师市| 河间市| 金昌市| 镇江市| 兴仁县|