詳談Java枚舉、靜態(tài)導入、自動拆裝箱、增強for循環(huán)、可變參數(shù)
一、枚舉簡介
1、什么是枚舉?
需要在一定范圍內(nèi)取值,這個值只能是這個范圍內(nèi)中的任意一個
現(xiàn)實場景:交通信號燈,有三種顏色,但是每次只能亮三種顏色里面的任意一個
2、使用一個關鍵字 enum
enum Color3 { RED,GREEN,YELLOW; }
*枚舉的構(gòu)造方法也是私有化的
*特殊枚舉的操作
**在枚舉類里面有構(gòu)造方法
**在構(gòu)造方法里面有參數(shù),需要在每個實例上都寫參數(shù)
**在枚舉類里面有抽象方法
**在枚舉的每個實例里面都重寫這個抽象方法
3、枚舉的api的操作
**name():返回枚舉的名稱
**ordinal():枚舉的下標
**valueof(Class<T> enumType,String name):得到枚舉的對象
**還有兩個方法,不在api文檔里,編譯自動生成
***valueof(String name) 轉(zhuǎn)換枚舉對象
***values() 獲得所有枚舉對象數(shù)組
//知道枚舉的對象,得到枚舉名稱和下標 @Test public void test1() { //得到枚舉對象 Color100 c100 = Color100.RED; //得到枚舉名稱 String name = c100.name(); //得到枚舉的下標 int idx = c100.ordinal(); System.out.println(name+":"+idx); }
//知道枚舉的名稱,得到枚舉的對象和下標 @Test public void test2() { String name1 = "GREEN"; //得到對象 Color100 c1 = Color100.valueOf(name1); //得到枚舉下標 int idx1 = c1.ordinal(); System.out.println(idx1); }
//知道枚舉的下標,得到枚舉的對象和名稱 @Test public void test3() { int idx2 = 2; //得到枚舉對象 Color100[] cs = Color100.values(); //根據(jù)下標得到對象 Color100 c12 = cs[idx2]; //得到枚舉的名稱 String name2 = c12.name(); System.out.println(name2); }
二、靜態(tài)導入
*可以在代碼里面,直接使用靜態(tài)導入方式,導入靜態(tài)方法或者常量
*import static XX.XX.xxx
*import static java.lang.System.out;
比如實現(xiàn)一個計算器,在Math類里面
三、自動拆裝箱
*裝箱
**把基本的數(shù)據(jù)類型裝換成包裝類
*拆箱
**把包裝類轉(zhuǎn)換成基本數(shù)據(jù)類型
** //自動裝箱
Integer i = 10;
//自動拆箱
int m = i ;
** 在jdk1.4里面如何實現(xiàn)裝箱和拆箱
public void test1() { //裝箱 Integer m = new Integer(10); //拆箱 int a = m.intValue(); }
**jdk是向下兼容
-比如在jdk1.4里寫的代碼,到5.0里面也可以運行
四、增強for循環(huán)
*語法 for(遍歷出來的值:要遍歷的集合){}
-for(String s : list){ System.out.println(s) }
*使用場景:數(shù)組;實現(xiàn)Iterator接口的集合,可以使用增強for循環(huán)
*在集合上使用增強for循環(huán)遍歷
list set 實現(xiàn)了Iterator接口,所以可以使用增強for循環(huán)
map不能使用增強for循環(huán),沒有實現(xiàn)Iterator接口,所以不能使用增強for循環(huán)
*增強for循環(huán)出現(xiàn)目的:為了替代迭代器
**增強for循環(huán)底層就是迭代器實現(xiàn)的。
五、可變參數(shù)
可變參數(shù)應用場景:實現(xiàn)兩個數(shù)的相加,實現(xiàn)三個數(shù)的相加,四個數(shù)的相加
-如果實現(xiàn)多個方法,這些方法里邏輯基本相同,唯一不同的是傳遞的參數(shù)的個數(shù),可以使用可變參數(shù)
可變參數(shù)的定義方法:數(shù)據(jù)類型...數(shù)組的名稱
理解為一個數(shù)組,這個數(shù)組存儲傳遞過來的參數(shù)
public static void add(int ...nums) { //nums理解為一個數(shù)組,這個數(shù)組存儲傳遞過來的參數(shù) int sum= 0; //遍歷數(shù)組,實現(xiàn)參數(shù)相加 for (int i = 0; i < nums.length; i++) { sum+=nums[i]; } System.out.println(sum); }
注意:
(1)可變參數(shù)需要寫在方法的參數(shù)列表中,不能單獨定義
(2)在方法的參數(shù)列表中只能有一個可變參數(shù)
(3)方法的參數(shù)列表中的可變參數(shù),必須放在參數(shù)最后 ,public void add(int a ,int...nums) {}
以上這篇詳談Java枚舉、靜態(tài)導入、自動拆裝箱、增強for循環(huán)、可變參數(shù)就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
詳解Spring Boot 使用slf4j+logback記錄日志配置
本篇文章主要介紹了Spring Boot 使用slf4j+logback記錄日志配置,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-05-05SpringBoot統(tǒng)計接口調(diào)用耗時的三種方式
在實際開發(fā)中,了解項目中接口的響應時間是必不可少的事情,SpringBoot 項目支持監(jiān)聽接口的功能也不止一個,接下來我們分別以 AOP、ApplicationListener、Tomcat 三個方面去實現(xiàn)三種不同的監(jiān)聽接口響應時間的操作,需要的朋友可以參考下2024-06-06使用mybatis log plugin插件展示出數(shù)據(jù)庫查詢語句方式
本文介紹了如何安裝和配置MyBatis日志插件,包括集成log4j、配置log4j.xml文件和在application.properties中添加數(shù)據(jù)庫打印配置,通過這些步驟,可以在調(diào)試時查看預編譯的數(shù)據(jù)庫語句和實際查詢語句2024-11-11基于SpringBoot bootstrap.yml配置未生效的解決
這篇文章主要介紹了基于SpringBoot bootstrap.yml配置未生效的解決方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-10-10解決SpringBoot框架因post數(shù)據(jù)量過大沒反應問題(踩坑)
這篇文章主要介紹了解決SpringBoot框架因post數(shù)據(jù)量過大沒反應問題(踩坑),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-09-09SpringBoot實現(xiàn)動態(tài)控制定時任務支持多參數(shù)功能
這篇文章主要介紹了SpringBoot實現(xiàn)動態(tài)控制定時任務-支持多參數(shù)功能,本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下2019-05-05