java-枚举

本文详细介绍了Java中的枚举类型,包括定义、语法、注意事项及示例代码。并展示了如何使用枚举进行遍历和switch操作。
定义: 所谓枚举类型,就是用一组数量有限的标识符来表示一组连续的整型常数,使能够更清晰的表示出现实世界
枚举的用法:一些方法在运行的时候,需要的数据类型不是随意的,它是要在一个范围内有效的值,就可以用枚举来解决这个问题
语法格式定义 
	enum 枚举类的类名{
	//先定义出 对应的 枚举值
	 //再来写方法
	}

枚举的注意点:
	 1.枚举类型 是一个 特殊的 类  final class 枚举类名 extends java.lang.Enum 
	 2.枚举类中 的 枚举值(man, woman) 默认修饰符 是 public static  final 
	 3.枚举类中的 枚举值 它的类型 是 本类类型 Sex类型的 对象
	 4.枚举类的构造方法 是 private修饰的, 枚举类 会自内部 自己构造枚举值
	 5.枚举类 是可以有成员变量的,但是只能通过枚举值 去访问枚举类型 的 实例成员变量
	 6.枚举类 构造的 枚举值对象,默认是无参构造的,但是你可以通过有参数的构造来构造他们, 这个有参构造 必须是 private修饰的
	 7.枚举类 也可以有抽象的方法, 但是注意的是 枚举值必须要实现抽象的方法
	 8.枚举值 必须是 枚举类中的 第一个语句
示例代码:public class Demo{
	public static void main(String[] args) {
        	Student jack = new Student();	
		jack.setAge(33);
		jack.setName("杰克");
		jack.setSex(Sex.man);
		Sex.man.value = "呵呵";
		Sex.value1 = "haha";
		
		System.out.println("jack 的 姓名 : " + jack.getName() + ", 性别是 : " + jack.getSex());
		System.out.println("value : "+ Sex.man.value);  // "hehe"
		System.out.println("value : "+ Sex.woman.value); // null
		System.out.println("value : "+ Sex.value1);
		//Sex s = new Sex();

		Sex.man.test();
		Sex.woman.test();
		
		Sex.man.test1();
		Sex.woman.test1();
	}
}
enum Sex{	
	//定义枚举值
    man("男"){   	
    	public void test1(){  		
    		System.out.println("man 在 实现抽象方法");
    	}   	
    }, woman("女"){
        public void test1(){	
    		System.out.println("woman 在 实现抽象方法");
    	}	
    }, renyao("人妖"){
    	 public void test1(){
     		System.out.println("人妖   在 实现抽象方法");
     	}
    	
    };//特别注意大括号后面的逗号和分号
    
    //成员变量 
    String value;
    
    static String value1;
    
    //行为 方法
    //1.构造方法
    private Sex(String value){
    	
    	this.value = value;
    }   
    public void test(){
    	
    	System.out.println("这是枚举类型的 公开的普通方法 : " + this.value);
    }
    
    //声明了一个抽象方法 
    public abstract void test1();	
}
class Student{
	private String name;
	private int age;
	private Sex sex;
	
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
	public Sex getSex() {
		return sex;
	}
	public void setSex(Sex sex) {
		this.sex = sex;
	}	
}

遍历、switch 等常用操作

对enum进行遍历和switch的操作示例代码:

public  class  Test {
     public  static  void  main(String[] args) {
         for  (EnumTest e : EnumTest.values()) {
             System.out.println(e.toString());
         }
         
         System.out.println( "----------------我是分隔线------------------" );
         
         EnumTest test = EnumTest.TUE;
         switch  (test) {
         case  MON:
             System.out.println( "今天是星期一" );
             break ;
         case  TUE:
             System.out.println( "今天是星期二" );
             break ;
         // ... ...
         default :
             System.out.println(test);
             break ;
         }
     }
}

输出结果:

MON
TUE
WED
THU
FRI
SAT
SUN

enum 对象的常用方法介绍

int compareTo(E o) 
          比较此枚举与指定对象的顺序。

Class<E> getDeclaringClass() 
          返回与此枚举常量的枚举类型相对应的 Class 对象。

String name() 
          返回此枚举常量的名称,在其枚举声明中对其进行声明。

int ordinal() 
          返回枚举常量的序数(它在枚举声明中的位置,其中初始常量序数为零)。

String toString()

           返回枚举常量的名称,它包含在声明中。

static <T extends Enum<T>> T valueOf(Class<T> enumType, String name) 
          返回带指定名称的指定枚举类型的枚举常量。

总结

    可以把 enum 看成是一个普通的 class,它们都可以定义一些属性和方法,不同之处是:enum 不能使用 extends 关键字继承其他类,因为 enum 已经继承了 Java.lang.Enum(java是单一继承)。

以上是我对java中枚举的部分总觉以及资料查找,若有错误,欢迎指正!

### 回答1: 枚举是一种特殊的数据类型,它可以定义一组常量,这些常量在程序中是固定不变的。枚举常量可以用于代表一些特定的状态或类型,比如星期几、颜色、性别等。在Java中,枚举类型是通过关键字enum来定义的。枚举类型的常量可以通过枚举类型名和常量名来访问,例如:Weekday.MONDAY。枚举类型还可以定义方法和构造函数,以便更好地描述枚举常量的特性和行为。枚举类型在Java中广泛应用于各种场景,例如状态机、配置管理、错误码等。 ### 回答2: 枚举(Enumeration)在Java中是一种特殊的数据类型,它是一组有限且已命名的数据项的集合。枚举类型属于引用数据类型,它的每一个成员都是一个常量对象,且不能改变,可以看作一个常量的集合。 枚举类型的定义格式如下: enum 枚举类型名称{ 枚举值1, 枚举值2, …… 枚举值N; } 其中,枚举常量就是指定义在枚举类型中的数据项,每个枚举常量都有一个唯一的名称,并且是用常量大写字母来表示的。我们可以使用枚举类型定义变量,枚举类型变量赋值的时候只能取枚举类型中的某一个值,不能赋值其他类型的值。 枚举类型的最大优点就在于其具备范围固定、安全性高、易于理解的特点。在处理程序中,为了避免输入的数据不符合要求或程序出现异常,我们经常要用到对数据的限制。而对于枚举类型,系统会自动限定它的取值,程序员不需要额外考虑对值的判断,因此大大简化代码,提高程序的可读性、可维护性。 在Java程序的开发中,枚举类型经常被用在菜单项、操作类型、状态码等等的定义中。比如一个操作系统的文件操作类型就可以定义为枚举类型,包括新建、打开、复制、粘贴、剪切等操作,这样就方便了后续的程序设计。 总之,枚举类型在Java程序设计中已经被广泛应用,在一些常量的定义、一些有限值数据类型的定义上使用枚举类型能够方便代码的编写,提高程序的可读性并减少程序出错的可能。 ### 回答3: 枚举Java中一种特殊的类,它可以用来定义一组固定的值,枚举成员就是这组固定的值。例如,我们可以定义一个枚举类来表示一周中的每一天: ``` public enum DayOfWeek { MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY; } ``` 在定义枚举类时,每个枚举成员都是一个对象,它们都是该枚举类的实例。枚举成员的值默认为它们在枚举类中的位置,可以通过枚举成员的ordinal()方法获取。 枚举类中可以定义成员变量、构造方法、普通方法和静态方法。枚举成员作为对象,可以调用枚举类中的成员方法。 枚举还可以用在switch语句中,例如: ``` DayOfWeek day = DayOfWeek.MONDAY; switch (day) { case MONDAY: System.out.println("Today is Monday."); break; case TUESDAY: System.out.println("Today is Tuesday."); break; case WEDNESDAY: System.out.println("Today is Wednesday."); break; case THURSDAY: System.out.println("Today is Thursday."); break; case FRIDAY: System.out.println("Today is Friday."); break; case SATURDAY: System.out.println("Today is Saturday."); break; case SUNDAY: System.out.println("Today is Sunday."); break; } ``` 以上代码输出的结果是“Today is Monday.”。 枚举的好处是使代码更容易理解和维护,因为它将具有相同含义的常量组织在一起,而且可以避免使用数字表示常量,增加代码的可读性。另外,枚举还可以提供类型安全检查,避免类型错误。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值