java 1.5的新特性
2011-05-07 09:02
387 查看
java 1.5新特性:
可变参数与overLoad
overload vs voerride:重载与重写
一、可变参数:
定义一个函数 函数名(int x ,int···args)//三个点
可变参数特点:
1:只能出现在参数列表的最后。
2:···位于变量类型和变量名之间,前后有无空格都可以。
3:调用可变参数的方法时,编译器为该可变参数隐含创建一个说组,在方法体中以数组的形式访问可
变参数。
4:记得在调用该函数是参数的设置问题。
二、for循环增强
故上述函数可改成for(int arg:args)····
三、基本数据类型的自动装箱和拆箱:
如Integer iObj=3;//属于自动装箱
System.out.println(iObj+12);//属于自动解箱
Integer i1=3;
Integer i2=3;
此时i1,i2一样,但数超过(-128-127之间)时i1与i2就不一样了(由于大数使用频率低)·
由于数小而需要很多对象时就可以采用。
享元模式:flyweight//很重要的概念
如果有很多很小的对象,他们有相同的属性(内部状态)可以把它们变成一个对象,那些不相同的属性
把它们变成方法的参数,称之为外部状态。
四:JDK1.5新特性
枚举:
枚举就是要让某个类型的变量取值只能为若干个固定值的一个。否则编译器就就好报错。
每个枚举元素都是一个对象。
public class EnumTest
{
public static void main(String []args)
{
WeekDay weekDay=WeekDay.SUN;
}
public abstract class WeekDay
{
private WeekDay(){}
public final static Weekday SUN=new WeekDay(){
public WeekDay nextDay(){
return MON;
}
};
public final static Weekday MON=new WeekDay(){
public WeekDay nextDay(){
return SUN;
}
};
public abstract nextDay();
//重写toString方法
public String toString()
{
return this==SUN?"SUN":"MON";
}
}
上述采用抽象方法定义nextDay将大量if else 语句转移成了一个独立的类
实现带有抽象方法的枚举:
public enum TrafficLamp
{
RED(30)
{public TrafficLamp nextLamp()
{
return GREEN;
}
},
GREEN(45){
public TrafficLamp nextLamp()
{
return YELLOW;
}
},
YELLOW(5){
public TrafficLamp nextLamp()
{
return RED;
}
};
public abstract TrafficLamp nextLamp();
private int time;
public TrafficLamp(int time)
{
this.time=time;
}
}
//如果枚举只有一个成员时便可以作为一种单例的实现方法。
可变参数与overLoad
overload vs voerride:重载与重写
一、可变参数:
定义一个函数 函数名(int x ,int···args)//三个点
可变参数特点:
1:只能出现在参数列表的最后。
2:···位于变量类型和变量名之间,前后有无空格都可以。
3:调用可变参数的方法时,编译器为该可变参数隐含创建一个说组,在方法体中以数组的形式访问可
变参数。
4:记得在调用该函数是参数的设置问题。
二、for循环增强
故上述函数可改成for(int arg:args)····
三、基本数据类型的自动装箱和拆箱:
如Integer iObj=3;//属于自动装箱
System.out.println(iObj+12);//属于自动解箱
Integer i1=3;
Integer i2=3;
此时i1,i2一样,但数超过(-128-127之间)时i1与i2就不一样了(由于大数使用频率低)·
由于数小而需要很多对象时就可以采用。
享元模式:flyweight//很重要的概念
如果有很多很小的对象,他们有相同的属性(内部状态)可以把它们变成一个对象,那些不相同的属性
把它们变成方法的参数,称之为外部状态。
四:JDK1.5新特性
枚举:
枚举就是要让某个类型的变量取值只能为若干个固定值的一个。否则编译器就就好报错。
每个枚举元素都是一个对象。
public class EnumTest
{
public static void main(String []args)
{
WeekDay weekDay=WeekDay.SUN;
}
public abstract class WeekDay
{
private WeekDay(){}
public final static Weekday SUN=new WeekDay(){
public WeekDay nextDay(){
return MON;
}
};
public final static Weekday MON=new WeekDay(){
public WeekDay nextDay(){
return SUN;
}
};
public abstract nextDay();
//重写toString方法
public String toString()
{
return this==SUN?"SUN":"MON";
}
}
上述采用抽象方法定义nextDay将大量if else 语句转移成了一个独立的类
实现带有抽象方法的枚举:
public enum TrafficLamp
{
RED(30)
{public TrafficLamp nextLamp()
{
return GREEN;
}
},
GREEN(45){
public TrafficLamp nextLamp()
{
return YELLOW;
}
},
YELLOW(5){
public TrafficLamp nextLamp()
{
return RED;
}
};
public abstract TrafficLamp nextLamp();
private int time;
public TrafficLamp(int time)
{
this.time=time;
}
}
//如果枚举只有一个成员时便可以作为一种单例的实现方法。
相关文章推荐
- java1.5新特性 静态导入 及如何在eclipse中方便使用
- JAVA1.5新特性----for循环增强
- 黑马程序员_JAVA1.5新特性——静态导入
- Java1.5新特性
- Java1.5新特性--逐渐挖掘Static Import
- Java 1.5新特性Enum的用法
- 黑马程序员—Java学习笔记之集合框架(三)以及1.5新特性
- Java1.5语言新特性简单总结
- java技术加强之其他1.5特性
- 黑马程序员_java1.5新特性泛型集合
- Java 1.5新特性Enum的用法
- java JDK1.5新特性(二) [注解] [泛型]
- java1.5新特性 静态导入 及如何在eclipse中方便使用
- Java1.5语言新特性简单总结
- JAVA1.5新特性----基本数据类型的自动拆箱与装箱
- 圣思园java se培训总结(58-)(java1.5新特性,可变参数,包装类)
- 黑马程序员_JAVA1.5新特性——可变参数
- Java1.5 多线程新特性 Concurrent包分析
- java1.5 与 1.4 相比 --新特性
- 黑马程序员_Java基础加强_1.5的新特性