日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

JAVA进阶教学之(Enum枚举类)

發布時間:2024/7/23 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 JAVA进阶教学之(Enum枚举类) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

首先,我們為什么要學習Enum枚舉類

我們引入一段代碼:

package com.lbj.javase.enumTest;public class EnumTest01 {public static void main(String[] args) {int retValue=divide(10,2);System.out.println(retValue);int retValue2=divide(10,0);System.out.println(retValue2);}/**** @param a 除數* @param b 被除數* @return 如果返回值是1表成功,是0表失敗*/public static int divide(int a,int b){try{int c = a/b;return 1;}catch (Exception e){return 0;}} }

觀察代碼我們得知(設計缺陷):

? ? public static int divide(int a,int b){
? ? ? ? try{
? ? ? ? ? ? int c = a/b;

//當我們不小心寫成了返回值=10,實際上已經出錯了,但是編譯器沒有檢查出來
? ? ? ? ? ? return 10;
? ? ? ? }catch (Exception e){
? ? ? ? ? ? return 0;
? ? ? ? }
? ? }

?

這段代碼中的返回值 return中的數值是1,但是程序猿很容易手賤寫多或者寫少

提出:

我們追求的是:所有的錯誤盡可能讓編譯器找出來,所有的錯誤越早發現越好

?

?

解決:

改進后的代碼

(根據需求,我們確定好了是只要返回的兩個可以判斷執行與不執行,因此我們可以換成布爾類型的數據,這樣就不會像上面出現的在編譯的時候找不出錯誤,實際上運行時是錯誤的程序)

package com.lbj.javase.enumTest;public class EnumTest01 {public static void main(String[] args) {boolean retValue=divide(10,2);System.out.println(retValue);boolean retValue2=divide(10,0);System.out.println(retValue2);}/**** @param a 除數* @param b 被除數* @return 如果返回值是true表成功,是false表失敗*/public static boolean divide(int a,int b){try{int c = a/b;return true;}catch (Exception e){return false;}} }

?

思考:

以上第二種的方法設計沒有什么問題,返回true和false表示兩種情況,但是在以后的開發中,有可能遇到一個方法的返回執行結果包括3種情況,4種情況,5種情況不等。

但是每一個都是可以數清楚的,一枚接著一枚都是可以列舉出來的,這時候布爾類型就無法滿足需求了,此時就需要使用到枚舉類型

?

關于枚舉的代碼演示:

注意:此時的返回值類型已經變成枚舉型的類名,這就是和上面失敗的int類型返回值的一個對比

package com.lbj.javase.enumTest;public class EnumTest02 {public static void main(String[] args) {Result result=divide(10,2);System.out.println(result);}public static Result divide(int a, int b){try{int c=a/b;return Result.SUCCESS;}catch (Exception e){return Result.FA;}} } //枚舉:一枚一枚可以列舉出來,才建議使用枚舉類型 //枚舉編譯之后也是生成class文件,因為它也屬于引用數據類型 //枚舉中的每一個值可以看成是常量 enum Result{//SUCCESS 是枚舉Result類型中的一個值//FA 是枚舉Result類型中的一個值//枚舉中的每一個值都可以看做是常量SUCCESS,FA }

?

總結:

1、枚舉是一種引用數據類型,由SUN公司以及封裝好成為一個類

2、枚舉類型怎么定義?語法:

enum 枚舉類型名{

? ? ?枚舉值1,枚舉值2

}

3、結果只有兩種情況的,建議用布爾類型

4、結果超過兩種情況且可以一枚一枚列舉出來的,建議用枚舉類型

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

總結

以上是生活随笔為你收集整理的JAVA进阶教学之(Enum枚举类)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。