一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - 詳談Java枚舉、靜態導入、自動拆裝箱、增強for循環、可變參數

詳談Java枚舉、靜態導入、自動拆裝箱、增強for循環、可變參數

2020-12-21 10:30gdwkong Java教程

下面小編就為大家帶來一篇詳談Java枚舉、靜態導入、自動拆裝箱、增強for循環、可變參數。小編覺得挺不錯的,現在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

一、枚舉簡介

1、什么是枚舉?

需要在一定范圍內取值,這個值只能是這個范圍內中的任意一個

現實場景:交通信號燈,有三種顏色,但是每次只能亮三種顏色里面的任意一個

2、使用一個關鍵字 enum

enum Color3 { RED,GREEN,YELLOW; }

*枚舉的構造方法也是私有化的

*特殊枚舉的操作

**在枚舉類里面有構造方法

**在構造方法里面有參數,需要在每個實例上都寫參數

**在枚舉類里面有抽象方法

**在枚舉的每個實例里面都重寫這個抽象方法

3、枚舉的api的操作

**name():返回枚舉的名稱

**ordinal():枚舉的下標

**valueof(Class<T> enumType,String name):得到枚舉的對象

**還有兩個方法,不在api文檔里,編譯自動生成

***valueof(String name) 轉換枚舉對象

***values() 獲得所有枚舉對象數組

?
1
2
3
4
5
6
7
8
9
10
11
//知道枚舉的對象,得到枚舉名稱和下標
 @Test
 public void test1() {
  //得到枚舉對象
  Color100 c100 = Color100.RED;
  //得到枚舉名稱
  String name = c100.name();
  //得到枚舉的下標
  int idx = c100.ordinal();
  System.out.println(name+":"+idx);
 }
?
1
2
3
4
5
6
7
8
9
10
//知道枚舉的名稱,得到枚舉的對象和下標
 @Test
 public void test2() {
  String name1 = "GREEN";
  //得到對象
  Color100 c1 = Color100.valueOf(name1);
  //得到枚舉下標
  int idx1 = c1.ordinal();
  System.out.println(idx1);
 }
?
1
2
3
4
5
6
7
8
9
10
11
12
//知道枚舉的下標,得到枚舉的對象和名稱
 @Test
 public void test3() {
  int idx2 = 2;
  //得到枚舉對象
  Color100[] cs = Color100.values();
  //根據下標得到對象
  Color100 c12 = cs[idx2];
  //得到枚舉的名稱
  String name2 = c12.name();
  System.out.println(name2);
 }

二、靜態導入

*可以在代碼里面,直接使用靜態導入方式,導入靜態方法或者常量

*import static XX.XX.xxx

*import static java.lang.System.out;

比如實現一個計算器,在Math類里面

三、自動拆裝箱

*裝箱

**把基本的數據類型裝換成包裝類

*拆箱

**把包裝類轉換成基本數據類型

** //自動裝箱

Integer i = 10;

//自動拆箱

int m = i ;

** 在jdk1.4里面如何實現裝箱和拆箱

?
1
2
3
4
5
6
public void test1() {
  //裝箱
 Integer m = new Integer(10);
  //拆箱
  int a = m.intValue();
}

**jdk是向下兼容

-比如在jdk1.4里寫的代碼,到5.0里面也可以運行

四、增強for循環

*語法 for(遍歷出來的值:要遍歷的集合){}

-for(String s : list){ System.out.println(s) }

*使用場景:數組;實現Iterator接口的集合,可以使用增強for循環

*在集合上使用增強for循環遍歷

list set 實現了Iterator接口,所以可以使用增強for循環

map不能使用增強for循環,沒有實現Iterator接口,所以不能使用增強for循環

*增強for循環出現目的:為了替代迭代器

**增強for循環底層就是迭代器實現的。

五、可變參數

可變參數應用場景:實現兩個數的相加,實現三個數的相加,四個數的相加

-如果實現多個方法,這些方法里邏輯基本相同,唯一不同的是傳遞的參數的個數,可以使用可變參數

可變參數的定義方法:數據類型...數組的名稱

理解為一個數組,這個數組存儲傳遞過來的參數

?
1
2
3
4
5
6
7
8
9
public static void add(int ...nums) {
  //nums理解為一個數組,這個數組存儲傳遞過來的參數
  int sum= 0;
  //遍歷數組,實現參數相加
  for (int i = 0; i < nums.length; i++) {
   sum+=nums[i];
  }
  System.out.println(sum);
 }

注意:

(1)可變參數需要寫在方法的參數列表中,不能單獨定義

(2)在方法的參數列表中只能有一個可變參數

(3)方法的參數列表中的可變參數,必須放在參數最后 ,public void add(int a ,int...nums) {}

以上這篇詳談Java枚舉、靜態導入、自動拆裝箱、增強for循環、可變參數就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持服務器之家。

原文鏈接:http://www.cnblogs.com/gdwkong/archive/2017/08/24/7423762.html

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: chinesespanking调教 | 楚乔传第二部全60集免费观看 | coolgay男男gayxxx| youyjzzcom最新欧美 | 国产在线视频第一页 | 日本伊人色综合网 | 国产成人精品第一区二区 | 国产精品 色 | 男生操女生漫画 | 国产一区国产二区国产三区 | 98精品全国免费观看视频 | 男同gay作爰视频网站 | 午夜小视频网站 | 美女林柏欣21p人体之仓之梦 | 人人爱天天做夜夜爽88 | 99久久无色码中文字幕 | 91麻豆在线观看 | 美女扒开屁股让男人进去 | 免费xxxxx大片在线观看影视 | 69罗莉视频在线观看 | 全黄h全肉细节修仙玄幻文 全彩调教侵犯h本子全彩妖气he | 午夜爱爱爱爱爽爽爽视频网站 | 果冻传媒在线视频播放观看 | 精品一区二区三区在线成人 | 精品区卡一卡2卡三免费 | 性关系免费视频 | 成年男女免费视频网站 | 全肉一女n男np高h双龙养成 | igao网果冻传媒 | 国产成人精品1024在线 | 92精品国产成人观看免费 | 人与禽交3d动漫羞羞动漫 | 男人的天堂视频在线 | 亚洲色图欧美偷拍 | 精品国产一区二区三区久久久蜜臀 | 国产精品久久久久久爽爽爽 | 男人狂躁女人下面狂叫图片 | 国产一卡二卡3卡4卡更新 | 国产成人99精品免费观看 | 激情五色月 | chinese男同志gay免费 |