jdk5新特性(上)

博主在这里简单总结一下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新特性请留意(下)



你可能感兴趣的:(Java基础)