一个枚举类实例

本文探讨了枚举类如何实现抽象方法,并通过具体实例展示了枚举类的特性及其实现方式。枚举类不能继承其他类,其构造器默认为private,且非抽象枚举类默认使用final修饰。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  1. 被枚举类继承的抽象方法:
public interface GenderDesc {
	void info();
}
  1. 枚举类
public enum UpmsResultConstant implements GenderDesc{


    FAILED(0, "failed"){
    	@Override
    	public void info() {
    		System.out.println("失败");
    	}
    },
    SUCCESS(1, "success"),

    INVALID_LENGTH(10001, "Invalid length"),

    EMPTY_USERNAME(10101, "Username cannot be empty"),
    EMPTY_PASSWORD(10102, "Password cannot be empty"),
    INVALID_USERNAME(10103, "Account does not exist"),
    INVALID_PASSWORD(10104, "Password error"),
    INVALID_ACCOUNT(10105, "Invalid account");//根据构造器定义,且必须在第一行显式累出,中间用英文逗号隔开,用分号结尾.

    public int code;

    public String message;

    UpmsResultConstant(int code, String message) { //构造器默认使用private修饰
        this.code = code;
        this.message = message;
    }

    public int getCode() {
        return code;
    }

    public void setCode(int code) {
        this.code = code;
    }

    public String getMessage() {
        return message;
    }
    
    public void setMessage(String message) {
        this.message = message;
    }
    
	@Override
	public void info() {
		// TODO Auto-generated method stub		
	}
}
  1. 测试类
public class Test {
	public static void main(String[] args) {
		for (UpmsResultConstant upm : UpmsResultConstant.values()) {
			upm.info();
			System.out.print(upm.getCode()+":"+upm.message);
			System.out.print("   "+upm.toString());
			System.out.println("   "+upm.ordinal());
			UpmsResultConstant u = UpmsResultConstant.valueOf(UpmsResultConstant.class, "FAILED");
		}
	}
}
  1. 运行结果
失败
0:failed   FAILED   0
1:success   SUCCESS   1
10001:Invalid length   INVALID_LENGTH   2
10101:Username cannot be empty   EMPTY_USERNAME   3
10102:Password cannot be empty   EMPTY_PASSWORD   4
10103:Account does not exist   INVALID_USERNAME   5
10104:Password error   INVALID_PASSWORD   6
10105:Invalid account   INVALID_ACCOUNT   7

枚举类的特点:

  1. 枚举类不能显示继承其他类,因为枚举类默认继承java.lang.Enum,
  2. 非抽象枚举类默认使用final修饰,因此不能别继承;
  3. 构造器默认使用private 修饰,且不能修改;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值