Java 新特性之枚举,由浅入深

3)本篇博客为Java新特性之 枚举,如需了解 Java 的其它部分,欢迎点击链接。

  1. Java 系列之基础程序设计
  1. Java 系列之类与对象
  1. Java高级特性之 IO流
  1. Java高级特性之 集合
  1. Java高级特性之 多线程
  1. Java新特性之 枚举
  1. Java新特性之 泛型

传送门:

  • 1 定义

  • 2 枚举类的使用

    • 2.1 自定义枚举类
  • 2.2 使用 enum 关键字定义枚举类

  • 3 Enum 类

  • 4 实现枚举类的接口

1 定义

=======================================================================

当某个类的对象是确定的、有限个的,那么就称这个类为枚举类。

示例

  • 星期类Monday( 星期一)对象 …… Sunday (星期天)对象

  • 性别类Man( 男)对象 、 Woman( 女)对象

2 枚举类的使用

===========================================================================

2.1 自定义枚举类


** 步骤**:

  1. private final来修饰声明枚举类对象的属性;

  2. 私有化枚举类的构造器,并给枚举类对象属性赋值;

  3. 实例化当前枚举类的多个对象,并用public static final来修饰枚举类对象。

代码实现

public class SeasonTest {

public static void main(String[] args) {

Season spring = Season.SPRING;

System.out.println(spring);

}

}

//自定义枚举类

class Season{

//1.声明Season对象的属性:private final修饰

//final修饰的属性必须进行赋值,赋值方式有显式赋值、构造器赋值和代码块赋值

private final String seasonName;

private final String seasonDesc;

//2.私有化类的构造器,并给对象属性赋值

private Season(String seasonName,String seasonDesc){

this.seasonName = seasonName;

this.seasonDesc = seasonDesc;

}

//3.提供当前枚举类的多个对象:public static final的

public static final Season SPRING = new Season(“春天”,“春暖花开”);

public static final Season SUMMER = new Season(“夏天”,“夏日炎炎”);

public static final Season AUTUMN = new Season(“秋天”,“秋高气爽”);

public static final Season WINTER = new Season(“冬天”,“冰天雪地”);

//4.其他诉求1:获取枚举类对象的属性

public String getSeasonName() {

return seasonName;

}

public String getSeasonDesc() {

return seasonDesc;

}

//4.其他诉求1:提供toString()

@Override

public String toString() {

return “Season{” +

“seasonName=’” + seasonName + ‘’’ +

“, seasonDesc=’” + seasonDesc + ‘’’ +

‘}’;

}

}

2.2 使用 enum 关键字定义枚举类


使用说明

  1. 必须在枚举类的第一行声明枚举类对象

  2. 使用 enum 定义的枚举类默认继承了java.lang.Enum 类,因此不能再继承其他类;

  3. 枚举类的构造器只能使用 private 权限修饰符

  4. 枚举类的所有实例必须在枚举类中显式列出,分隔; 结尾 ,系统会自动添加 public static final 修饰。

步骤

5. 实例化当前枚举类的对象,多个对象之间用 , 隔开,末尾对象 ; 结束;

6. 用private final来修饰声明枚举类对象的属性;

7. 私有化枚举类的构造器,并给枚举类对象属性赋值。

代码实现

public class SeasonTest {

public static void main(String[] args) {

Season spring = Season.SPRING;

System.out.println(spring);

}

}

/**

  • 自定义枚举类

*/

enum Season{

//1. 提供当前枚举类的对象,多个对象之间用",“隔开,末尾对象”;"结束

SPRING(“春天”,“春暖花开”),

SUMMER(“夏天”,“夏日炎炎”),

AUTUMN(“秋天”,“秋高气爽”),

WINTER(“冬天”,“冰天雪地”);

//2. 声明Season对象的属性:private final修饰

//final修饰的属性必须进行赋值,赋值方式有显式赋值、构造器赋值和代码块赋值

private final String seasonName;

private final String seasonDesc;

//3. 私有化类的构造器,并给对象属性赋值

private Season(String seasonName,String seasonDesc){

this.seasonName = seasonName;

this.seasonDesc = seasonDesc;

}

//4.其他诉求1:获取枚举类对象的属性

public String getSeasonName() {

return seasonName;

}

public String getSeasonDesc() {

return seasonDesc;

}

//4.其他诉求1:提供toString()

@Override

public String t

《一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义》

【docs.qq.com/doc/DSmxTbFJ1cmN1R2dB】 完整内容开源分享

oString() {

return “Season{” +

“seasonName=’” + seasonName + ‘’’ +

“, seasonDesc=’” + seasonDesc + ‘’’ +

‘}’;

}

}

其中有一点要注意的是,实际上,enum 继承的是 Enum 类而非 Object 类,Object 类的 toString(); 方法返回的是地址,而 Enum 类的 toString(); 方法返回的是当前枚举常量的名称

3 Enum 类

===========================================================================

由于利用 enum 关键字修饰的类默认继承了 Enum 类,所以也可以使用父类的方法。

Enum 类的几个重要的方法与示例

1)toString():返回当前枚举类对象常量的名称

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值