亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

詳談Java枚舉、靜態(tài)導(dǎo)入、自動(dòng)拆裝箱、增強(qiáng)for循環(huán)、可變參數(shù)

 更新時(shí)間:2017年08月25日 08:54:14   作者:gdwkong  
下面小編就為大家?guī)?lái)一篇詳談Java枚舉、靜態(tài)導(dǎo)入、自動(dòng)拆裝箱、增強(qiáng)for循環(huán)、可變參數(shù)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧

一、枚舉簡(jiǎn)介

1、什么是枚舉?

需要在一定范圍內(nèi)取值,這個(gè)值只能是這個(gè)范圍內(nèi)中的任意一個(gè)

現(xiàn)實(shí)場(chǎng)景:交通信號(hào)燈,有三種顏色,但是每次只能亮三種顏色里面的任意一個(gè)

2、使用一個(gè)關(guān)鍵字 enum

enum Color3 { RED,GREEN,YELLOW; }

*枚舉的構(gòu)造方法也是私有化的

*特殊枚舉的操作

**在枚舉類里面有構(gòu)造方法

**在構(gòu)造方法里面有參數(shù),需要在每個(gè)實(shí)例上都寫參數(shù)

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

**在枚舉的每個(gè)實(shí)例里面都重寫這個(gè)抽象方法

3、枚舉的api的操作

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

**ordinal():枚舉的下標(biāo)

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

**還有兩個(gè)方法,不在api文檔里,編譯自動(dòng)生成

***valueof(String name) 轉(zhuǎn)換枚舉對(duì)象

***values() 獲得所有枚舉對(duì)象數(shù)組

//知道枚舉的對(duì)象,得到枚舉名稱和下標(biāo)
 @Test
 public void test1() {
  //得到枚舉對(duì)象
  Color100 c100 = Color100.RED;
  //得到枚舉名稱
  String name = c100.name();
  //得到枚舉的下標(biāo)
  int idx = c100.ordinal();
  System.out.println(name+":"+idx);
 }
//知道枚舉的名稱,得到枚舉的對(duì)象和下標(biāo)
 @Test
 public void test2() {
  String name1 = "GREEN";
  //得到對(duì)象
  Color100 c1 = Color100.valueOf(name1);
  //得到枚舉下標(biāo)
  int idx1 = c1.ordinal();
  System.out.println(idx1);
 }
//知道枚舉的下標(biāo),得到枚舉的對(duì)象和名稱
 @Test
 public void test3() {
  int idx2 = 2;
  //得到枚舉對(duì)象
  Color100[] cs = Color100.values();
  //根據(jù)下標(biāo)得到對(duì)象
  Color100 c12 = cs[idx2];
  //得到枚舉的名稱
  String name2 = c12.name();
  System.out.println(name2);
 }

二、靜態(tài)導(dǎo)入

*可以在代碼里面,直接使用靜態(tài)導(dǎo)入方式,導(dǎo)入靜態(tài)方法或者常量

*import static XX.XX.xxx

*import static java.lang.System.out;

比如實(shí)現(xiàn)一個(gè)計(jì)算器,在Math類里面

三、自動(dòng)拆裝箱

*裝箱

**把基本的數(shù)據(jù)類型裝換成包裝類

*拆箱

**把包裝類轉(zhuǎn)換成基本數(shù)據(jù)類型

** //自動(dòng)裝箱

Integer i = 10;

//自動(dòng)拆箱

int m = i ;

** 在jdk1.4里面如何實(shí)現(xiàn)裝箱和拆箱

public void test1() {
  //裝箱
 Integer m = new Integer(10);
  //拆箱
  int a = m.intValue(); 
}

**jdk是向下兼容

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

四、增強(qiáng)for循環(huán)

*語(yǔ)法 for(遍歷出來(lái)的值:要遍歷的集合){}

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

*使用場(chǎng)景:數(shù)組;實(shí)現(xiàn)Iterator接口的集合,可以使用增強(qiáng)for循環(huán)

*在集合上使用增強(qiáng)for循環(huán)遍歷

list set 實(shí)現(xiàn)了Iterator接口,所以可以使用增強(qiáng)for循環(huán)

map不能使用增強(qiáng)for循環(huán),沒有實(shí)現(xiàn)Iterator接口,所以不能使用增強(qiáng)for循環(huán)

*增強(qiáng)for循環(huán)出現(xiàn)目的:為了替代迭代器

**增強(qiáng)for循環(huán)底層就是迭代器實(shí)現(xiàn)的。

五、可變參數(shù)

可變參數(shù)應(yīng)用場(chǎng)景:實(shí)現(xiàn)兩個(gè)數(shù)的相加,實(shí)現(xiàn)三個(gè)數(shù)的相加,四個(gè)數(shù)的相加

-如果實(shí)現(xiàn)多個(gè)方法,這些方法里邏輯基本相同,唯一不同的是傳遞的參數(shù)的個(gè)數(shù),可以使用可變參數(shù)

可變參數(shù)的定義方法:數(shù)據(jù)類型...數(shù)組的名稱

理解為一個(gè)數(shù)組,這個(gè)數(shù)組存儲(chǔ)傳遞過(guò)來(lái)的參數(shù)

public static void add(int ...nums) {
  //nums理解為一個(gè)數(shù)組,這個(gè)數(shù)組存儲(chǔ)傳遞過(guò)來(lái)的參數(shù)
  int sum= 0;
  //遍歷數(shù)組,實(shí)現(xiàn)參數(shù)相加
  for (int i = 0; i < nums.length; i++) {
   sum+=nums[i];
  }
  System.out.println(sum);
 }

注意:

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

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

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

以上這篇詳談Java枚舉、靜態(tài)導(dǎo)入、自動(dòng)拆裝箱、增強(qiáng)for循環(huán)、可變參數(shù)就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論