Java 学习之常量定义与枚举值定义

package javaObject;

import com.sun.glass.events.WheelEvent;

public class javaEnum {
	public static void main(String[] args) {
		
		/*
		 * 无论是int常量还是String常量,使用这些常量来表示一组枚举值的时候,有一个严重的问题就是,编译器无法检查每个值的合理性。
		 * 
		 * enum定义的枚举类,其类型就是class
		 * 无法通过new操作符创建enum的实例
		 * 
		 * enum定义枚举优势:
		 * 1 enum常量本身带有类型信息,编译器会自动检查出类型错误
		 * 2 其次,不可能引用到非枚举的值,因为无法通过编译
		 * 3 不同类型的枚举不能互相比较或者赋值,因为类型不符。
		 * 
		 */
		
		// 整型常量判断
		int day = Weekday.SUN;
		switch (day) {
		case Weekday.SUN: System.out.println("今天是星期日");break;
		case Weekday.MON: System.out.println("今天是星期一");break;
		case Weekday.TUE: System.out.println("今天是星期二");break;
		case Weekday.WED: System.out.println("今天是星期三");break;
		case Weekday.THU: System.out.println("今天是星期四");break;
		case Weekday.FRI: System.out.println("今天是星期五");break;
		case Weekday.SAT: System.out.println("今天是星期六");break;
		default:
			break;
		}
		
		// 字符型常量判断
		String fruit = Fruit.apple;
		if (Fruit.apple.equals(fruit)) {
			System.out.println("今天买了苹果");
		} else if (Fruit.orange.equals(fruit)) {
			System.out.println("今天买了橙子");
		} else if (Fruit.banana.equals(fruit)) {
			System.out.println("今天买了香蕉");
		}
		
		// 枚举判断
		WeekName weekDay = WeekName.SAT;
		if (weekDay == WeekName.SAT) {
			System.out.println("周六去踢足球");
		} else {
			System.out.println("不是周六不去足球");
		}
		
		System.out.println("返回常量名:" + WeekName.SUN.name());
		
		Launch launch = Launch.Monlaunch;
		System.out.println(launch.launchDay + "带了 " + launch.toString());
	}
}

// 整型常量
class Weekday {
	public static final int SUN = 0;
	public static final int MON = 1;
	public static final int TUE = 2;
	public static final int WED = 3;
	public static final int THU = 4;
	public static final int FRI = 5;
	public static final int SAT = 6;
}

// 字符型常量
class Fruit {
	public static final String apple = "apple";
	public static final String banana = "banana";
	public static final String orange = "orange";
}

// 枚举
enum WeekName {
	SUN, MON, TUE, WED, THU, FRI, SAT;
}

// 枚举 
enum Launch {
	Monlaunch("星期一", 2,"鸡翅+生菜"), Tuelaunch("星期二", 3,"瘦肉+炸豆腐+西芹"), Wedlaunch("星期三", 2,"鸡腿+茼蒿"), Thulaunch("星期四", 2,"腐竹+瘦肉"),Frilaunch("星期五", 1,"鱼");

	// enum的字段强烈建议声明为final
	public final String launchDay;
	public final int lauchCount;
	private final String launchName;
	
	// enum的构造方法要声明为private
	private Launch(String day, int count, String name) {
		this.launchDay = day;
		this.lauchCount = count;
		this.launchName = name;
	}
	
	@Override
	public String toString() {
		return this.lauchCount + "个菜:" + this.launchName;
	}
}

发布了804 篇原创文章 · 获赞 135 · 访问量 142万+

猜你喜欢

转载自blog.csdn.net/potato512/article/details/103230250