第三章之枚舉、注解

2019-01-22
內容:枚舉、注解
一、自定義一個枚舉類
 1 public class TestSeason {
 2 
 3     public static void main(String[] args) {
 4         Season spring = Season.Spring;
 5         System.out.println(spring);
 6     }
 7 }
 8 public class Season {
 9     //將屬性定義為私有常量
10     private final String seasonName;
11     private final String seasonDes;
12     
13     //將構造器設置為私有的
14     private Season (String seasonName, String seasonDes) {
15         this.seasonName = seasonName;
16         this.seasonDes = seasonDes;
17     }
18     //利用構造器構造春夏秋冬四個對象
19     public static final Season Spring = new Season("春天","萬物復蘇");
20     public static final Season Summer = new Season("夏天","驕陽似火");
21     public static final Season Fall = new Season("秋天","秋高氣爽");
22     public static final Season Winter = new Season("冬天","白雪皚皚");
23     //因為屬性是常量,所以不能賦值
24     public String getSeasonName() {
25         return seasonName;
26     }
27     public String getSeasonDes() {
28         return seasonDes;
29     }
30     //重寫toString方法
31     @Override
32     public String toString() {
33         return "Season [seasonName=" + seasonName + ", seasonDes=" + seasonDes + "]";
34     }
35     
36 }

?

二、通過關鍵字enum定義一個枚舉類并使用方法
 1 public class TestSeason {
 2 
 3     public static void main(String[] args) {
 4         Season1 spring = Season1.Spring;
 5         System.out.println(spring);
 6         //使用values()方法將所有對象存入一個數組中
 7         Season1[] season = Season1.values();
 8         for (int i = 0; i < season.length; i++) {
 9             System.out.println(season[i]);
10         }
11         //使用valueOf(String name)方法將指定對象名的對象取出來
12         String name = "Winter";
13         Season1 winter = Season1.valueOf(name);
14         System.out.println(winter);
15     }
16 }
17 public enum Season1 {
18     Spring("春天","萬物復蘇"),
19     Summer("夏天","驕陽似火"),
20     Fall("秋天","秋高氣爽"),
21     Winter("冬天","白雪皚皚");
22     
23     private final String seasonName;
24     private final String seasonDes;
25     
26     private Season1 (String seasonName, String seasonDes) {
27         this.seasonName = seasonName;
28         this.seasonDes = seasonDes;
29     }
30 
31     public String getSeasonName() {
32         return seasonName;
33     }
34     public String getSeasonDes() {
35         return seasonDes;
36     }
37 
38     @Override
39     public String toString() {
40         return "Season1 [seasonName=" + seasonName + ", seasonDes=" + seasonDes + "]";
41     }
42     
43 }

?

三、讓枚舉類實現一個接口,并且讓枚舉類的每個對象都重寫接口中的抽象方法
 1 public class TestSeason {
 2 
 3     public static void main(String[] args) {
 4         Season1 spring = Season1.Spring;
 5         System.out.println(spring);
 6         //使用values()方法將所有對象存入一個數組中
 7         Season1[] season = Season1.values();
 8         for (int i = 0; i < season.length; i++) {
 9             System.out.println(season[i]);
10         }
11         //使用valueOf(String name)方法將指定對象名的對象取出來
12         String name = "Winter";
13         Season1 winter = Season1.valueOf(name);
14         System.out.println(winter);
15         //調用接口中的方法
16         spring.Show();
17     }
18 }
19 public interface Show {
20     void Show();
21 }
22 public enum Season1 implements Show {
23     Spring("春天","萬物復蘇"){
24         @Override
25         public void Show() {
26             System.out.println("春天:"+Spring.toString());
27         }
28     },
29     Summer("夏天","驕陽似火"){
30         @Override
31         public void Show() {
32             System.out.println("夏天:"+Spring.toString());
33         }
34     },
35     Fall("秋天","秋高氣爽"){
36         @Override
37         public void Show() {
38             System.out.println("秋天:"+Spring.toString());
39         }
40     },
41     Winter("冬天","白雪皚皚"){
42         @Override
43         public void Show() {
44             System.out.println("冬天:"+Spring.toString());
45         }
46     };
47     
48     private final String seasonName;
49     private final String seasonDes;
50     
51     private Season1 (String seasonName, String seasonDes) {
52         this.seasonName = seasonName;
53         this.seasonDes = seasonDes;
54     }
55 
56     public String getSeasonName() {
57         return seasonName;
58     }
59     public String getSeasonDes() {
60         return seasonDes;
61     }
62 
63     @Override
64     public String toString() {
65         return "Season1 [seasonName=" + seasonName + ", seasonDes=" + seasonDes + "]";
66     }
67 }

?

四、JDK常用注釋
  @Override:顯示表明方法重寫
  @Deprecated:表明方法或者類過時,但依舊可以使用
  @SuppressWarnings:抑制編譯器警告,即不讓編譯器發出警告
五、自定義注解
  使用@interface
六、元注解
  釋義:修飾注解的注解
  @Retention:*用來指定某個Annotation存在的時間長短
????       *使用格式:@Retention(RetentionPolicy.成員變量)
??????            @Retention(RetentionPolicy.SOURCE)表明該注釋在編譯時不會保留
??????            @Retention(RetentionPolicy.CLASS)表明在編譯時被記錄在.class文件中,運行不會保留,這是默認值
?????           ? @Retention(RetentionPolicy.RUNTIME)表明在編譯時被記錄在.class文件中,運行時也保留,程序可以通過反射獲取該注釋
  @Target:*用來指定某個Annotation能修飾的地方,默認是所有地方都能修飾
?      ? *使用格式@Target(地方),地方可以是FIELD,METHOD,CONSTRUCTION,TYPE,LOCAL_VARIABLE,PACKAGE,PARAMETER,ANNOTATION_TYPE中的任意個
  @Documented:*用來指定某個Annotation在生成文檔的時候會被保留
???        *格式:@Documented
  @Inherited:*用來指定某個Annotation具有繼承性

轉載于:https://www.cnblogs.com/jbrr/p/10305754.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/395369.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/395369.shtml
英文地址,請注明出處:http://en.pswp.cn/news/395369.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

html打開后默認瀏覽器頁面,使用VBA打開默認瀏覽器中的html頁面?

您可以使用Windows API函數ShellExecute來執行此操作&#xff1a;Option ExplicitPrivate Declare Function ShellExecute _Lib "shell32.dll" Alias "ShellExecuteA" ( _ByVal hWnd As Long, _ByVal Operation As String, _ByVal Filename As String, _Op…

數據科學r語言_您應該為數據科學學習哪些語言?

數據科學r語言Data science is an exciting field to work in, combining advanced statistical and quantitative skills with real-world programming ability. There are many potential programming languages that the aspiring data scientist might consider specializi…

Linux平臺不同解壓縮命令的使用方法

作者&#xff1a;郭孝星 微博&#xff1a;郭孝星的新浪微博 郵箱&#xff1a;allenwells163.com 博客&#xff1a;http://blog.csdn.net/allenwells github&#xff1a;https://github.com/AllenWell 一 .tar 解包 tar xvf FileName.tar 打包 tar cvf FileName.tar DirName 注意…

unity中怎么做河流_【干貨】工作中怎么做工業設計的?(一)

最近在找工作&#xff0c;一直在看招聘信息。看到工業設計工資還是蠻高的。應屆畢業生一般是4-6K&#xff0c;1-3年工作經驗是6-8K&#xff0c;3年以后的差不多是8K以上了。我沒有嫉妒羨慕恨&#xff0c;發誓&#xff0c;真的沒有。工業設計已經被重視&#xff0c;未來的道路會…

[易學易懂系列|golang語言|零基礎|快速入門|(一)]

golang編程語言&#xff0c;是google推出的一門語言。 主要應用在系統編程和高性能服務器編程&#xff0c;有廣大的市場前景&#xff0c;目前整個生態也越來越強大&#xff0c;未來可能在企業應用和人工智能等領域占有越來越重要的地位。 本文章是【易學易懂系列|編程語言入門】…

APUE學習之三個特殊位 設置用戶ID(set-user-ID),設置組ID(set-group-ID),sticky...

設置用戶ID&#xff08;set-user-ID&#xff09;&#xff0c;設置組ID&#xff08;set-group-ID&#xff09;&#xff0c;stickyset-user-ID: SUID當文件的該位有設置時&#xff0c;表示當該文件被執行時&#xff0c;程序具有文件所有者的權限而不是執行者的權限。這樣說有點繞…

微信調用html退后方法,微信瀏覽器后退關閉頁面

不需要引用 微信jssdk 關閉瀏覽器WeixinJSBridge.invoke(closeWindow, {}, function (res) { });參考&#xff1a;https://mp.weixin.qq.com/wiki/12/7dd29a53f4b55a8ddc6177ab60e5ee2c.html監聽微信、支付寶等移動app及瀏覽器的返回、后退、上一頁按鈕的事件方法參考&#xff…

在gitlab 中使用webhook 實現php 自動部署git 代碼

在技術團隊討論中&#xff0c;我們決定從svn 遷移到 git ,于是使用了gitlab&#xff0c;代碼自動部署使用了webhook在服務器上 1.開啟PHP需要的環境支持 服務器環境必須先安裝git 環境&#xff0c;webhook 依賴php運行環境&#xff0c;同時需要使用shell_exec 和 exec 等函數。…

spi收發時的寄存器sr不變_「正點原子Linux連載」第二十七章SPI實驗(二)

1)實驗平臺&#xff1a;正點原子Linux開發板2)摘自《正點原子I.MX6U嵌入式Linux驅動開發指南》關注官方微信號公眾號&#xff0c;獲取更多資料&#xff1a;正點原子文件bsp_spi.c中有兩個函數&#xff1a;spi_init和spich0_readwrite_byte&#xff0c;函數spi_init是SPI初始化函…

vue腳手架vue數據交互_學習Vue:3分鐘的交互式Vue JS教程

vue腳手架vue數據交互Vue.js is a JavaScript library for building user interfaces. Last year, it started to become quite popular among web developers. It’s lightweight, relatively easy to learn, and powerful.Vue.js是用于構建用戶界面JavaScript庫。 去年&#…

[JSOI2018]潛入行動

題解 一道思路不難但是寫起來很麻煩的樹形背包 我們發現每個節點有很多信息需要保留 所以就暴力的設\(f[u][j][0/1][0/1]\)表示點u的子樹分配了j個監察器,點u有沒有被控制,點u放沒放監察器 然后就分四種情況暴力討論就好了 注意背包的時候要卡常數 代碼 #include<cstdio>…

css。元素樣式、邊框樣式

1.外邊距  margin 縮寫形式&#xff1a; margin&#xff1a;上邊距  右邊距  下邊距  左邊距 margin&#xff1a;上下邊距  左右邊距 margin&#xff1a;上邊距  左右邊距  下邊距 2.內邊距  padding 縮寫形式&#xff1a; padding&#xff1a;上邊距  右邊距…

html文本對齊6,HTML對齊文本

我要像以下列方式顯示頁面上的文本&#xff1a;HTML對齊文本My Text: Text HereMy Text: More Text Here.........................................................Text from line above continued here.我有以下的標記只是為了測試&#xff1a;body {font-family: arial;}fo…

vue底部跳轉_詳解Vue底部導航欄組件

不多說直接上代碼 BottomNav.vue&#xff1a;{{item.name}}export default{props:[idx],data(){return {items:[{cls:"home",name:"首頁",push:"/home",icon:"../static/home.png",iconSelect:"../static/home_select.png"}…

Android Studio環境搭建

Android Studio環境搭建 個人博客 歡迎大家多多關注該獨立博客。 ###[csdn博客]&#xff08;http://blog.csdn.net/peace1213&#xff09; 一直想把自己的經驗分享出來&#xff0c;記得上次寫博客還是ok6410的筆記。感覺時代久遠啊。記得那個時候我還一心想搞硬件了。如今又一次…

hacktoberfest_Hacktoberfest和其他有趣的事情將在本周末在freeCodeCamp

hacktoberfestby Quincy Larson昆西拉爾森(Quincy Larson) Hacktoberfest和其他有趣的事情將在本周末在freeCodeCamp (Hacktoberfest and other fun things going on this weekend at freeCodeCamp) Earlier this month, the freeCodeCamp community turned 3 years old. And …

C# 動態創建數據庫三(MySQL)

前面有說明使用EF動態新建數據庫與表&#xff0c;數據庫使用的是SQL SERVER2008的&#xff0c;在使用MYSQL的時候還是有所不同 一、添加 EntityFramework.dll &#xff0c;System.Data.Entity.dll &#xff0c;MySql.Data, MySql.Data.Entity.EF6 注意&#xff1a;Entity Frame…

iOS開發Swift篇—(七)函數(1)

一、函數的定義 &#xff08;1&#xff09;函數的定義格式 1 func 函數名(形參列表) -> 返回值類型 { 2 // 函數體... 3 4 } &#xff08;2&#xff09;形參列表的格式 形參名1: 形參類型1, 形參名2: 形參類型2, … &#xff08;3&#xff09;舉例&#xff1a;計算2個…

如何用計算機管理員權限,教你電腦使用代碼添加管理員權限的詳細教程

我們在使用電腦運行某些軟件的時候&#xff0c;可能需要用到管理員權限才能運行&#xff0c;通常來說直接點擊右鍵就會有管理員權限&#xff0c;但最近有用戶向小編反饋&#xff0c;在需要管理員權限的軟件上點擊右鍵沒有看到管理員取得所有權&#xff0c;那么究竟該如何才能獲…

activiti 5.22的demo運行

activiti 5.22的demo運行 從github上clon下來的activiti項目,運行demo項目activiti-webapp-explorer2時&#xff0c;在使用到流程設計工作區&#xff0c;選取activiti modeler作為設計器的時候報錯。 從下面的報錯信息中發現&#xff0c;請求路徑http://localhost:8080/activit…