欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java之Default關鍵字的兩種使用方式

 更新時間:2024年09月21日 09:33:06   作者:SnailMann  
Java關鍵字default主要有兩種使用場景:一是在switch語句中作為默認執(zhí)行的分支;二是在接口中定義默認方法,這是Java 8新增的特性,允許接口包含具體實現(xiàn)的方法,在switch中,當沒有匹配的case時,執(zhí)行default分支

Java關鍵字Default的兩種使用方法

其實之前一直都沒有關注過還有default這關鍵字的存在,最近重新回溫《Java語言程序設計》這本書時,想總結(jié)總結(jié)常用的一些修飾符。偶然發(fā)現(xiàn)…嗯…是這樣的.

兩種使用方法:

據(jù)我觀察,總的來說,default的用法不多,只有兩種:

  • switch語句的時候使用default
  • 在定義接口的時候使用default來修飾具體的方法

第一種使用方法

代碼:

		int day = 8;
		String dayString;
		switch (day) {
			case 1:	dayString = "Monday";
					break;
			case 2: dayString = "Tuesday";
					break;
			case 3: dayString = "Wednesday";
					break;
			case 4: dayString = "Thursday";
					break;
			case 5: dayString = "Friday";
					break;
			case 6: dayString = "Saturday";
					break;
			//如果case沒有匹配的值,那么肯定是星期日
			default: dayString = "Sunday";
					 break;
		}
		System.out.println(dayString);

總結(jié):

  • 使用比較簡單,就是當case里的值與switch里的key沒有匹配的時候,執(zhí)行default里的方法。
  • 在這里的例子中就是key為8,所以key與所有的case的值都不匹配,所以輸出星期天Sunday.

第二種使用方法

接口的定義IntefercaeDemo,定義一個接口,里面有兩個具體的方法,和一個抽象方法

IntefercaeDemo .java

public interface IntefercaeDemo {

	//具體方法
	default void showDefault(){
		System.out.println("this is showDefault method");
	}
	static void showStatic(){
		System.out.println("this is showStatic method");
	}
	
	//沒有實現(xiàn)的抽象方法
	void sayHi();
}
  • LearnDefault 實現(xiàn)IntefercaeDemo 接口。

LearnDefault .java

public class LearnDefault implements IntefercaeDemo{
	//實現(xiàn)抽象方法
	@Override
	public void sayHi() {
		System.out.println("this is sayHi mehtod");
	}
	
	public static void main(String[] args) {
		//接口中被static所修飾的具體方法
		IntefercaeDemo.showStatic();
		
		//將實現(xiàn)了IntefercaeDemo的類實例化
		LearnDefault learnDefault = new LearnDefault();
		//被Default所修飾的具體方法可以通過引用變量來調(diào)用
		learnDefault.showDefault();

	}
}

說明:

  • JDK1.8中為了加強接口的能力,使得接口可以存在具體的方法,前提是方法需要被default或static關鍵字所修飾。

總結(jié):

  • default修飾的目的是讓接口可以擁有具體的方法,讓接口內(nèi)部包含了一些默認的方法實現(xiàn)。
  • 被default修飾的方法是接口的默認方法。既只要實現(xiàn)該接口的類,都具有這么一個默認方法,默認方法也可以被重寫。
  • 我們可以想象這么一個場景,既實現(xiàn)某個接口的類都具有某個同樣的功能,如果像Java8以前的版本,那么每個實現(xiàn)類都需要寫一段重復的代碼去實現(xiàn)那個功能,顯得沒有必要。這就是存在的意義。

注意:

另外這里既然提到了接口的修飾符default,那么就要注意一點,如果一個類實現(xiàn)了兩個接口(可以看做是“多繼承”),這兩個接口又同時都包含了一個名字相同的default方法,那么會發(fā)生什么情況?

在這樣的情況下,編譯器是會報錯,得到一個編譯器錯誤,因為編譯器不知道應該在兩個同名的default方法中選擇哪一個,因此產(chǎn)生了二義性。

補充:容易混淆的地方

這里的關鍵字default不要跟平時我們在類中定義方法時,沒有加任何訪問修飾符時的(default)相混淆,它們的意義是不一樣的。

public class Demo{
	//沒有訪問修飾符修飾,所以默認為(default)
	String name;
	void show(){}
}

這里的(default)指的是一種場景,既類中成員沒有被訪問修飾符修飾,所以屬于(default)的情況,效果是(default)情況的成員只能在Demo類所在的包內(nèi)被訪問。

而本篇博文所說的default關鍵字是一個實實在在存在的關鍵字,是需要顯式聲明的,目前只有所說的兩種用法。與(default)場景毫無關系

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • SpringBoot+Thymeleaf+ECharts實現(xiàn)大數(shù)據(jù)可視化(基礎篇)

    SpringBoot+Thymeleaf+ECharts實現(xiàn)大數(shù)據(jù)可視化(基礎篇)

    本文主要介紹了SpringBoot+Thymeleaf+ECharts實現(xiàn)大數(shù)據(jù)可視化,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧<BR>
    2022-06-06
  • java線程之使用Runnable接口創(chuàng)建線程的方法

    java線程之使用Runnable接口創(chuàng)建線程的方法

    本篇文章介紹了,java中使用Runnable接口創(chuàng)建線程的方法。需要的朋友參考下
    2013-05-05
  • java發(fā)送http get請求的兩種方式

    java發(fā)送http get請求的兩種方式

    這篇文章主要為大家詳細介紹了java發(fā)送http get請求的兩種方式,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-05-05
  • Java利用哈夫曼編碼實現(xiàn)字符串壓縮

    Java利用哈夫曼編碼實現(xiàn)字符串壓縮

    赫夫曼編碼也翻譯為?哈夫曼編碼(Huffman?Coding),又稱霍夫曼編碼,是一種編碼方式,?屬于一種程序算法。本文將利用哈夫曼樹實現(xiàn)哈夫曼編碼進行字符串壓縮,需要的可以參考一下
    2022-09-09
  • SWT(JFace)體驗之圓環(huán)狀(戒指型)

    SWT(JFace)體驗之圓環(huán)狀(戒指型)

    SWT(JFace)體驗之圓環(huán)狀(戒指型)實現(xiàn)代碼。
    2009-06-06
  • 深入理解JVM自動內(nèi)存管理

    深入理解JVM自動內(nèi)存管理

    對于Java虛擬機在內(nèi)存分配與回收的學習,本文主要介紹了JVM自動內(nèi)存管理,文中通過圖文示例介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-08-08
  • springboot利用aop實現(xiàn)接口異步(進度條)的全過程

    springboot利用aop實現(xiàn)接口異步(進度條)的全過程

    我們在開發(fā)中,調(diào)用第三方接口時,往往是提交數(shù)據(jù),要異步去獲取數(shù)據(jù),下面這篇文章主要給大家介紹了關于springboot利用aop實現(xiàn)接口異步(進度條)的相關資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-01-01
  • java實現(xiàn)單鏈表之逆序

    java實現(xiàn)單鏈表之逆序

    這篇文章主要介紹了應用java語言實現(xiàn)單鏈表逆序,,需要的朋友可以參考下
    2015-07-07
  • IDEA 連接數(shù)據(jù)庫的實現(xiàn)方法

    IDEA 連接數(shù)據(jù)庫的實現(xiàn)方法

    這篇文章主要介紹了IDEA 連接數(shù)據(jù)庫的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-10-10
  • IDEA如何修改項目名稱出現(xiàn)中括號

    IDEA如何修改項目名稱出現(xiàn)中括號

    當項目文件夾名稱與model名稱不一致時,IDEA會在項目名旁顯示中括號以區(qū)分,修改項目名稱時出現(xiàn)中括號問題,通常是因為IDE中model名與文件夾名不同步,解決方法是統(tǒng)一model名稱和文件夾名稱,可通過重構(gòu)功能或項目結(jié)構(gòu)設置完成,重命名操作應謹慎,以避免路徑等引用錯誤
    2024-10-10

最新評論