黑马程序员-JDK5.0新特性(枚举,增强for,可变参数.........)

原创 2012年10月21日 17:26:39

JDK5.0新特性

------- android培训java培训、期待与您交流! ----------

 

可变参数:

         格式:  public void test( int …  arr){…………..}

         可变参数的特点:

1.       只能出现在参数列表的最后

2.       …  位于变量和变量名之间,前后有无空格都可

3.       调用可变参数的方法时,编译器为该可变参数隐含的创建一个数组在方法体中可以以数组的形式访问可变参数。

4.       调用方法时可变参数的位置可以不传值。

 

 

增强for循环:

         格式: for(类型类型名:集合或者是数组)

{

     …………………………………….

} 

注意:迭代变量必须在()中定义,不能在外面定义,集合变量可以是数组或者实现了Iterable接口的集合类。

        

 

基本数据类型的自动拆装箱:

         JDK5.0以后对基本类型和对应的引用类型能够自动的拆箱和装箱。

         Integer   i1 =15

         Integer   i2=15

         System.out.println(i1==i2); //结果为true,只当数的范围在-128~127之间时,结果才为true

         //因为在这个范围之内的数会存到缓冲池中,当再次用到这个数时先到缓存池中查找。

        

 

枚举:

        枚举和类差不多,枚举相当是一个类,枚举里面的元素相当于是这个类的实例对象

而且这些枚举值(枚举元素)相当于public static final的(public static final枚举元素 =new本实例对象;),也就是我们经常所定义的常量方式,因此枚举类中的枚举值最好全部大写。

枚举里面的元素都相当于是static final的。 

将一个元素转换成枚举元素类型 枚举.valueOf(“aaa”);

         格式:public enum名字

{

    AA,BB;(当下面没有构造方法,或其他代码时这个分号写不写都可以)

}

        

带有构造方法的枚举:

1.       枚举元素列表必须放在所有成分之前(构造方法和所有成分必须放在元素列表之后。)

2.       枚举的构造方法必须是private的或default

3.       枚举里的每个元素都相当于一个本类行的实例对象。

4.      public enum名字

{

AA(参数1),BB(参数1);(当下面没有构造方法,或其他代码时这个分号写不写都可以)

Private名字(参数1 ){….}

}

 

         带有抽象方法的枚举:

                  例:

publicclass Enumtest {

    publicstaticvoid main(String[] args) { 

       System.out.println();

    } 

enum TrafficLamp

    {

       RED(30)//这是匿名内部类,这样写相当于调用父类带参数的构造方法

           {

              public TrafficLamp nextLamp()

              {

                  returnGREEN;

              }

           },

       GREEN(20)

           {

              public TrafficLamp nextLamp()

              {

                  returnYELLOW;

              }

           },

       YELLOW(5)

           {

              public TrafficLamp nextLamp()

              {

                  returnRED;

              }

           };

       publicabstract TrafficLamp nextLamp();

       privateinttime;

       private TrafficLamp(int time){this.time=time;}

    }

}


 

//用普通类模拟枚举的实现原理

public abstract class WeekDay {

	private WeekDay(){}//枚举中的构造方法必须是私有的
	public static final WeekDay  SUN = new WeekDay(){
		@Override
		public WeekDay nextDay() {	
			return MON;
		}};
	public  static  final WeekDay MON = new WeekDay(){
		@Override
		public WeekDay nextDay() {	
			return SUN;
		}};

	

	//覆写同toString方法
	
	public String toString()
	{
		return this==SUN?"SUN":"MON";
		
	}
}


 

 

 注:枚举只有一个成员时就可以作为一种单例的实现方式。

 

 

 

 

黑马程序员-----JDK1.5新特性-自动拆装箱、静态导入、枚举、可变参数、for循环增强

---------------------- ASP.Net+Android+IOS开发、.Net培训、期待与您交流! ----------------------   一、静态导入  静态导入...

黑马程序员--Java基础加强(2)-- JDK1.5新特性之可变参数,增强for,自动拆装箱,枚举

JDK1.5新特性之可变参数,增强for,自动拆装箱,枚举 一、 可变参数 1、当一个方法,需要的参数不确定时,可以使用可变参数,比如add方法,希望传入几个参数就让这几个参数相加,声明形式: pub...

黑马程序员-----------JdK1.5新特性(一)---可变参数,增强for循环,自动装箱与拆箱,静态导入,枚举

JDK1.5新特性(一) 1.可变参数 2.增强的“for”循环(Enhanced For loop) 3.基本数据类型的自动拆箱与装箱。(Autoboxing/unboxing) 4.静态导...

黑马程序员——Java高新技术——JDK4.5版本新特性枚举、高级for循环、静态导入、可变参数、基本数据类型的自动装箱与拆箱

----------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ----------------------Java培训、Android培训、iOS培训、.Net培训、...

黑马程序员<Java 1.5新特性>静态导入、增强for、可变参数、自动装箱拆箱、枚举

一、静态导入(static import)   1、静态导入的与普通import的区别:     import语句可以导入一个类,或者包中的类;     import static 语句可以导入一个类...

黑马程序员—JDK1.5新特性(增强for循环、可变参数、静态导入)

增强for循环:foreach语句,foreach简化了迭代器  * 增强for循环。格式:for (数据类型 变量名 :被遍历的集合(Collection)或者数组)  *  {  *  ...

黑马程序员——高新技术--JDK1.5新特性(for循环增强、可变参数、静态导入、自动装拆箱、享元)

——Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ——- JDK一般升级目的: 1、简化书写。 2、提高效率。 3、增加安全性。 格式: for(数据类型 变量...

黑马程序员:jdk1.5新特性1 (静态导入、可变参数、增强for循环、享元模式)

 静态导入: import static java.lang.Math.*;          //import static java.lang.Math.max;         导入Math包下...

黑马程序员---JDK1.5新特性之(增强for循环、可变参数、静态导入)

增强for循环

【黑马程序员】jdk1.5的新特性之可变参数和增强for循环

一、可变参数: 有些时候一个方法需要接受若干个参数,而参数的个数是不确定的,这个应用还是比较多的。比如加法运算。如果求几个数的和,而数的个数不确定,这时候就可以用到可变参数,求和的过程是根据传入方法中...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:黑马程序员-JDK5.0新特性(枚举,增强for,可变参数.........)
举报原因:
原因补充:

(最多只允许输入30个字)