final和枚举

final

定义

final是最终的意思,final修饰的变量叫做常量,值是赋值后不能再被修改的,并且需要赋初始值。

特点

final修饰的方法不能被重写

final修饰的类不能被继承

final修饰的常量用于经常使用但是不会被修改的值,比如:PI、weekDay=7

//在实际的项目中,一般会把项目中用到的常量全部规范到一个工具类中

public class ConstantUtil {
    //注意:一般情况下,常量为了与变量区分,常量建议全部大写
    //静态常量,通过类名直接调用
    public static final String WEEK1 = "星期一";
    public static final String WEEK2 = "星期二";
    public static final String WEEK3 = "星期三";
    public static final String WEEK4 = "星期四";
    public static final String WEEK5 = "星期五";
    public static final String WEEK6 = "星期六";
    public static final String WEEK7 = "星期日";
}

枚举

先通过一个小案例来思考为什么需要枚举

public class Student {
    //静态常量  一周七天
    public static final int WEEKDAY = 7;
    
    public void show() {
        //像这种情况  我们虽然用了常量来赋值,但是weekDay是个变量,赋值还是不够严谨
        //如何解决这个问题呢--->枚举
        int weekDay = Student.WEEKDAY;
        weekDay = 8;
        System.out.println("一周有"+weekDay+"天");
    }
}

特性

枚举是java5之后的新特性,是一种严格的数据类型,可以将常量组织起来,使代码更加易读、安全

案例一

package Test5;

public class Student {
    
    enum Week{
        星期一,星期二,星期三,星期四,星期五,星期六,星期天
    }
    
    public void show() {
        
        //week因是Week枚举数据类型,只能接收Week枚举里面的值,更为严谨
        Week week = Week.星期三;
        //String a = Week.星期一;//枚举类型Week里面的值你只能赋值给枚举类型Week的变量
        System.out.println("今天星期:"+week);
    }
    public static void main(String[] args) {
         new Student().show();
    }
}

案例二:枚举在switch中的使用

package Test6;

//枚举在常量中的用法

public class tEST {
	public static void main(String[] args) {
		Color color = Color.GREEN;
		switch (color) {
		case RED:
			System.out.println("红灯停");
			break;
		case GREEN:
			System.out.println("绿灯行");
			break;
		case YELLOW:
			System.out.println("黄灯亮了等一等");
			break;
		default:
			break;
		}
	}
}
package Test6;

public enum Color {
	RED,YELLOW,GREEN
}

案例三:以枚举作为方法形参

package Test7;

import Test7.Color;

public class InfoTest {

	/**
	 * 以枚举作为方法的形参
	 * @param yellow
	 * @return
	 */
	
	public static String getColor(Color yellow) {
		String info ="";
		switch (yellow) {
		case RED:
			info = "红灯停";
			break;
		case GREEN:
			info = "绿灯行";
			break;
		case YELLOW:
			info = "黄灯亮了等一等";
			break;
		default:
			break;
		}
		return info;
	}
}
package Test7;


//枚举在形参中的使用

public class tEST {
	public static void main(String[] args) {
		String info =InfoTest.getColor(Color.YELLOW);
		System.out.println("信号灯信息:"+info);
	}
}
package Test7;

public enum Color {
	
	RED,YELLOW,GREEN
}

你可能感兴趣的:(java,enum)