博主在这里简单总结一下jdk5的新特性:
1.静态导入 2.增强for循环 3.基本数据类型的包装类(涉及拆装箱) 4.可变参数 5.枚举 6.反射 7.泛型
首先第一点 静态导入
(1)导入类的静态属性
import static java.lang.System.out;
(2)导入类的静态方法
import static java.lang.Math.*;
2.增强for循环
增强for循环括号里写两个参数,第一个是声明一个变量,变量类型必须是数组元素的类型
第二个就是需要迭代的容器
for循环会循环容器的length次,每次都将容器的第n-1个元素赋值给声明的变量
public void fun1(){
String [] arr = {"520","1314","YZJ","WXC"};
//传统方法
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
//增强for
for (String string : arr) {
System.out.println(string);
}
}
3.基本数据类型的包装类
int --> Integer
byte --> Byte
short --> Short
long --> Long
char --> Character
double --> Double
float --> Float
boolean--> Boolean从左到右的过程就是装箱,从有到左的过程就是拆箱
4.可变参数
jdk5新特性中,方法的形参可作为可变参数,传入的实参可变
public class test {
public static void main(String[] args)
{
int sum = getSum(10,20,30,40,50);
System.out.println(sum);
}
public static int getSum(int... arr) {
// 可变参数在方法中仍被看做一个数组
int sum = 0;
for(int num : arr)
sum += num;
return sum;
}
}
5.枚举
一些方法在运行时,它需要的数据不能是任意的,而必须是一定范围内的值. 解决上述的问题:jdk5开始提供了枚举类解决上面的问题。
比如: 性别、方向....
枚举就是一个特殊的java类,可以定义属性、方法、构造函数、实现接口、继承类
博主以星期的例子来说明
首先创建一个weekend枚举类
public enum Weekend {
Monday("0"){
public String toLocaleString() {
return "星期一";
}
},
Tuesday("1"){
public String toLocaleString(){
return "星期二";
}
},
Wednesday("2"){
public String toLocaleString(){
return "星期三";
}
},
Thursday("3"){
public String toLocaleString(){
return "星期四";
}
},
Friday("4"){
public String toLocaleString(){
return "星期五";
}
},
Saturday("5"){
public String toLocaleString(){
return "星期六";
}
},
Sunday("6"){
public String toLocaleString(){
return "星期日";
}
};
private String value;
private Weekend(String value) {
this.value = value;
}
public String getValue() {
return value;
}
//一个方法不知道怎么实现,可以定义为抽象类,但是抽象类不能创建实例对象
public abstract String toLocaleString();
}
第二部 创建一个weekday类
public class WeekDay {
private String DayName;
private Weekend Day;
public String getDayName() {
return DayName;
}
public void setDayName(String dayName) {
DayName = dayName;
}
public Weekend getDay() {
return Day;
}
public void setDay(Weekend day) {
Day = day;
}
}
第三部 实现
public class Demo1 {
public static void main(String[] args) {
WeekDay wDay = new WeekDay();
wDay.setDayName("日期");
wDay.setDay(Weekend.Wednesday);
System.out.println(wDay.getDayName()+":"+wDay.getDay().toLocaleString());
System.out.println(wDay.getDayName()+":"+wDay.getDay().getValue());
}
}
剩下的jdk5新特性请留意(下)