天天看點

Java 5 的新标準文法和用法詳解集錦Java 5 的新标準文法和用法詳解集錦

Java 5 的新标準文法和用法詳解集錦

Java 5 的新标準文法和用法詳解集錦

(需要在首選項-java-complier-compiler compliance level中設定為java5.0以上版本)

1,靜态導入

1,靜态導入
//如import static java.lang.Math.*;
//導入包或類裡面的靜态方法.

import static java.lang.Math.max;

/**
 * java5的靜态導入
 * @author qsuron - 部落格:http://blog.csdn.net/qsuron
 */
public class Java5 {
	public static void main(String[] args) {
		System.out.println(max(1,3));
	}
}
           

2,可變參數的方法:

/**
 * java5的可變參數方法
 * @author qsuron - 部落格:http://blog.csdn.net/qsuron
 */
public class Java5 {
	public static void main(String[] args) {
		//實作  x*(x1+x2+x3+...+xn)
		System.out.println(add(2,2,3));//2*(2+3)=10
		System.out.println(add(2,2,3,4,1));//2*(2+3+4+1)=20
	}
	public static int add(int x,int... args){
		int sum = 0;
		for(int i=0;i<args.length;i++){
			sum += args[i];
		}
		return sum*x;
	}
}
           

3.新增FOR循環:

/**
 * java5的新FOR循環
 * @author qsuron - 部落格:http://blog.csdn.net/qsuron
 */
public class Java5 {
	public static void main(String[] args) {
		//實作  x*(x1+x2+x3+...+xn)
		System.out.println(add(2,2,3));//2*(2+3)=10
		System.out.println(add(2,2,3,4,1));//2*(2+3+4+1)=20
	}
	public static int add(int x,int... args){
		int sum = 0;
		for(int i:args){
			sum += i;
		}
		return sum*x;
	}
}
           

4.用普通類模拟實作枚舉類型 & 用java 5的枚舉類型用法和設計詳解

public class Java5 {
	public static void main(String[] args) {
		Week weekday = Week.MON;
		System.out.println(weekday);
		System.out.println(weekday.nextDay());
	}
}

/**
 * 用普通類模拟實作枚舉類型-星期
 * @author qsuron - 部落格:http://blog.csdn.net/qsuron
 */
abstract class Week{
	private String conf;
	private Week(String conf){
		this.conf = conf;
	}
	
	/*建立NextDay()抽象方法,将NextDay方法的一堆if...else...轉換成為 由子類去覆寫此方法*/
	public abstract Week nextDay();
	
	//建立公開的靜态常量子類
	public final static Week MON = new Week("星期一"){
		public Week nextDay() {
			return TUE;
		}
	};
	public final static Week TUE = new Week("星期二"){
		public Week nextDay() {
			return WED;
		}
	};
	public final static Week WED = new Week("星期三"){
		public Week nextDay() {
			return THI;
		}
	};
	public final static Week THI = new Week("星期四"){
		public Week nextDay() {
			return FRI;
		}
	};
	public final static Week FRI = new Week("星期五"){
		public Week nextDay() {
			return STA;
		}
	};
	public final static Week STA = new Week("星期六"){
		public Week nextDay() {
			return SUM;
		}
	};
	public final static Week SUM = new Week("星期日"){
		public Week nextDay() {
			return MON;
		}
	};
	
	/*重寫toString()方法*/
	public String toString() {
		return this.conf;
	}
	
}



/**
 * 使用JAVA5提供的枚舉類型 - 基礎用法和基本方法
 * @author qsuron - 部落格:http://blog.csdn.net/qsuron
 */
public class Java5 {
	public static void main(String[] args) {
		Week w = Week.MON;
		System.out.println("toString - "+w);
		System.out.println("與MON比較 - "+w.compareTo(Week.MON));
		System.out.println("Nama - "+w.name());
		System.out.println("所在順序 - "+w.ordinal());
		System.out.println("枚舉數量 - "+Week.values().length);
	}
	public enum Week{
		MON,TUE,WED,THE,FRI,STA,SUM;
	}
}



/**
 * 使用JAVA5提供的枚舉類型 - 構造方法
 * 加上private String name  和  重新toString方法可以實作中文資訊輸出
 * @author qsuron - 部落格:http://blog.csdn.net/qsuron
 */
public class Java5 {
	public static void main(String[] args) {
		System.out.println("MON(1),TUE(),WED,THE(1),FRI,STA,SUM();");
		Week w = Week.MON;
		System.out.println(w);
	}
	public enum Week{
		MON(1),TUE(),WED,THE(1),FRI,STA,SUM();
		private Week(){
			System.out.println("空構造函數");
		}
		private Week(int i){
			System.out.println("帶參數構造函數");
		}
	}
}


/**
 * 使用JAVA5提供的枚舉類型 - 抽象函數
 * 讓子類去覆寫抽象方法 - 實作Next()的功能
 * @author qsuron - 部落格:http://blog.csdn.net/qsuron
 */
public class Java5 {
	public static void main(String[] args) {
		Week w = Week.MON;
		System.out.println(w.next());
	}
	public enum Week{
		//由于麻煩,隻寫2個星期數
		MON{
			public Week next(){
				return TUE;
			}
		},
		TUE{
			public Week next(){
				return MON;
			}
		};
		public abstract Week next();
	}
}
           

轉載請注明出處:blog.csdn.net/qsuron 部落客qsuron 小樹

qsuron 小樹 小樹部落格