麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > Java > 正文

java基礎語法之final關鍵字

2019-11-06 06:09:44
字體:
來源:轉載
供稿:網友

java基礎語法之final關鍵字

1、final關鍵字的含義。

Java關鍵字final有“無法改變的”、“最終的”等含義。可以修飾類,方法和成員變量。

final修飾的類不能被繼承。(網上部分文章有結論:final類中的方法默認是final的。我不知道是怎么得出來的,但是感覺不對,寫了個方法測試了下,證明結論是錯誤的。)

import java.lang.reflect.Method;import java.lang.reflect.Modifier;public final class FinalDemo{	public void normalMethod(){}	public final void finalMethod(){}	public static void main(String[] args)	{		try		{			Method normalMethod = FinalDemo.class.getMethod("normalMethod", null);			Method finalMethod = FinalDemo.class.getMethod("finalMethod", null);			System.out.PRintln(Modifier.toString(normalMethod.getModifiers()));			System.out.println(Modifier.toString(finalMethod.getModifiers()));		}		catch (NoSuchMethodException | SecurityException e)		{			e.printStackTrace();		}	}}

輸出結果:

publicpublic final

final方法不能被子類的方法覆蓋。(網上有結論說final方法不能被子類方法覆蓋,但是可以被繼承,可以被繼承應該是和final無關的,而是和方法的訪問修飾符有關,例如public、private、protected,試想private final的那是肯定無法繼承到子類的。)

final成員變量表示常量,只能被賦值一次。(網上很多說法是賦值后值不再改變,其實這種說法不準確,被final修飾的值,如果是基本類型,那么值不可變,如果是對象,則是引用不可變,對象的內容是可以改變的。)

public class TestDemo{	public static void main(String[] args)	{		final StringBuilder sb = new StringBuilder("hello");		sb.append(" world");		System.out.println(sb.toString());	}}還有一種說法:父類的private成員方法是不能被子類方法覆蓋的,因此private類型的方法默認是final類型的。我就搞不懂了,final確實是禁止覆蓋的意思,但是不能覆蓋就一定是final在起作用?,明顯是private方法不能被繼承到子類,都沒有繼承到子類也就談不上覆蓋這種說法了。直接上例子:

public  class FinalDemo{	private void normalMethod(){}	private final void finalMethod(){}		public static void main(String[] args)	{		try		{			Method normalMethod = FinalDemo.class.getDeclaredMethod("normalMethod", null);			Method finalMethod = FinalDemo.class.getDeclaredMethod("finalMethod", null);			System.out.println(Modifier.toString(normalMethod.getModifiers()));			System.out.println(Modifier.toString(finalMethod.getModifiers()));					}		catch (NoSuchMethodException | SecurityException e)		{			e.printStackTrace();		}	}}輸出結果:

privateprivate final對final關鍵字含義的總結:

final修飾的類不能被繼承。

final修飾的方法不能被覆蓋。

final成員變量表示常量,只能被賦值一次。被final修飾的值,如果是基本類型,那么值不可變,如果是對象則是引用不可變,對象的內容是可以改變的。

網上很多總結都是錯誤的,是“一家之言”,希望大家學習的時候本著技術的質疑和追根究底精神,而不是一味的盲從,把錯誤當成常識。

final的其他特性:

final成員變量必須在聲明的時候初始化或者在構造器中初始化,否則就會報編譯錯誤。

final本地變量必須在聲明時賦值。

2、final應用場景

String以及Integer、Long等基本數據類型封裝類都是final class;

Math中PI 和 E 都是用final修飾的字段;

Math中sin cos等函數也是用final修飾的;


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 中文字幕亚洲欧美 | 一级电影在线免费观看 | 亚洲一区成人在线 | 国产成人在线一区二区 | 日韩黄色在线播放 | 欧日一级片 | 成年免费看 | chinese hd xxxx tube| 亚洲第五色综合网 | 羞羞电影在线观看 | 空姐毛片 | 91成人久久| 综合图区亚洲 | 一级性生活免费视频 | 国产精品一品二区三区四区18 | 激情久久精品 | 在线播放免费人成毛片乱码 | 中文字幕在线视频日本 | 在线亚洲免费视频 | 日韩精品 | 欧美一级淫片免费视频黄 | 热99热| 欧美爱爱视频免费看 | 一级做a爱视频 | 亚洲午夜精品视频 | 最新中文在线视频 | 美女网站黄在线观看 | 在线播放中文 | 久久久久免费精品国产小说色大师 | 欧美性生活视频免费 | 毛片在线视频观看 | 久草高清视频 | 精品一区二区在线播放 | 欧美一级淫片免费播放口 | 92精品国产自产在线 | 久久精品中文字幕一区 | 久草在线视频新 | 欧美成人小视频 | 人人舔人人舔 | 青青草成人av | 男人久久天堂 |