从零学Java - 枚举

Java - 枚举

文章目录

  • Java - 枚举
    • 1 什么是枚举?
    • 2 注意事项
    • 3 好处
    • 4 枚举的本质

1 什么是枚举?

枚举是一个引用类型,枚举是一个规定了取值范围的数据类型。

2 注意事项

  • 定义枚举使用enum关键字。
  • 枚举中主要包含常量, 多个常量使用逗号隔开,最后的分号可写可不写。
  • 枚举中也可以包含属性,方法,和私有构造方法,但是必须在常量的后面 (一般不写)

3 好处

好处:枚举变量不能使用其他的数据,只能使用枚举中常量赋值,提高程序安全性。

4 枚举的本质

  • 枚举是一个最终类(不能被继承),并继承Enum抽象类。
  • 枚举中常量是当前类型的静态常量。

代码演示:

Gender:

public enum Gender {
    MALE,FEMALE;
    private int value;
    public void method() {
        System.out.println("这是个方法");
    }
    Gender(){
    }
}

反编译Gender: ( 枚举的本质)

import java.io.PrintStream;

public final class Gender extends Enum
{

	public static final Gender MALE;
	public static final Gender FEMALE;
	private int value;
	private static final Gender $VALUES[];

	public static Gender[] values()
	{
		return (Gender[])$VALUES.clone();
	}

	public static Gender valueOf(String name)
	{
		return (Gender)Enum.valueOf(StageOne/day25/demo1/TestEnum/Gender, name);
	}

	public void method()
	{
		System.out.println("这是个方法");
	}

	private Gender(String s, int i)
	{
		super(s, i);
	}

	static 
	{
		MALE = new Gender("MALE", 0);
		FEMALE = new Gender("FEMALE", 1);
		$VALUES = (new Gender[] {
			MALE, FEMALE
		});
	}
}

Student:

public class Student {
    private String name;
    private int age;
    private Gender gender;
    //构造方法, get/set方法, 重写toString();
}

Test:

public class Test {
    public static void main(String[] args) {
        Student student = new Student("张三", 19, Gender.MALE);
        System.out.println(student);
    }
}

你可能感兴趣的:(从零学Java,java,开发语言)