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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

java拾遗录(一)

發(fā)布時(shí)間:2024/4/17 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java拾遗录(一) 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

以前學(xué)java的時(shí)候經(jīng)常關(guān)注一些基本知識(shí),沒(méi)有涉及到實(shí)際應(yīng)用上,這幾天去公司實(shí)習(xí)。發(fā)現(xiàn)一個(gè)以前經(jīng)常聽(tīng)說(shuō)但是重來(lái)沒(méi)有親自用過(guò)的一個(gè)東西:枚舉類(Enum)

?

相比如常量來(lái)表示某些值,使用枚舉類可以很好的體現(xiàn)可讀性、安全性等特點(diǎn)。

在java中可以在工程中右鍵來(lái)新建一個(gè)自己的Enum類,他繼承了java.lang.Enum類,實(shí)現(xiàn)Serializable 和 Comparable 接口

構(gòu)造器是private修飾,該類的所有實(shí)例必須在第一行顯示的列出來(lái)。

在該類中包含values()方法可以返回這個(gè)枚舉類中包含的所有實(shí)例。同時(shí)可以用valueof(class,name)來(lái)創(chuàng)建一個(gè)已有的枚舉類實(shí)例

枚舉類最大的特點(diǎn)是希望他不被外接改變(大概是這種感覺(jué)吧)

e.g:enum

1 public enum Gender { 2 MALE("男"),FEMALE("女"); 3 private String name; 4 5 Gender(String name){ 6 this.name = name; 7 } 8 9 public String getName(){ 10 return name; 11 } 12 } public class EnumTest {public static void main(String[] args) {Gender g = Enum.valueOf(Gender.class, "FEMALE"); //得到相應(yīng)的enum實(shí)例System.out.println(g + " represent : " + g.getName());}}

輸出結(jié)果:FEMALE ?represent : ?女

?

和類相似的,枚舉類也可以實(shí)現(xiàn)接口

1 public interface GenderDesc { 2 public void getInfo(); 3 }

gender實(shí)現(xiàn)接口并且給出接口中方法的具體實(shí)現(xiàn):

public enum Gender implements GenderDesc{MALE("男"),FEMALE("女");private String name;Gender(String name){this.name = name;}public String getName(){return name;}@Overridepublic void getInfo() {System.out.println("interface test !!");} }

EnumTest中實(shí)現(xiàn):

public class EnumTest {public static void main(String[] args) {Gender g = Enum.valueOf(Gender.class, "FEMALE");System.out.println(g + " represent : " + g.getName());g.getInfo();}}

結(jié)果:

FEMALE represent : 女
interface test !!

在實(shí)現(xiàn)接口的時(shí)候也可以針對(duì)不同的對(duì)象實(shí)現(xiàn)不同的方法:

public enum Gender implements GenderDesc{MALE("男"){public void getInfo(){System.out.println(" it's a man !");}},FEMALE("女"){public void getInfo(){System.out.println("it's a woman");}};private String name;Gender(String name){this.name = name;}public String getName(){return name;}} 1 public class EnumTest { 2 public static void main(String[] args) { 3 Gender g = Enum.valueOf(Gender.class, "FEMALE"); 4 System.out.println(g + " represent : " + g.getName()); 5 g.getInfo(); 6 7 Gender g2 = Enum.valueOf(Gender.class, "MALE"); 8 System.out.println(g2 + " represent : " + g2.getName()); 9 g2.getInfo(); 10 11 } 12 13 }

結(jié)果:

FEMALE represent : 女

it's a woman

MALE represent : 男
it's a man !

在上面的程序中,當(dāng)創(chuàng)建MALE,FEMALE的枚舉類時(shí)并不是直接創(chuàng)建Gender類,而是創(chuàng)建他的匿名子類,從編譯產(chǎn)生的class文件可以看出來(lái)。

?

轉(zhuǎn)載于:https://www.cnblogs.com/zhuojiniao/archive/2013/05/25/3099269.html

與50位技術(shù)專家面對(duì)面20年技術(shù)見(jiàn)證,附贈(zèng)技術(shù)全景圖

總結(jié)

以上是生活随笔為你收集整理的java拾遗录(一)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。