枚举类(1),前端开发学习路线

本文详细介绍了Java中的枚举类,包括如何使用get方法获取成员变量,抽象方法的实现以及枚举类的构造器特性。讨论了枚举类能否派生子类及其限制,以及如何通过枚举类实现接口和重写方法。
摘要由CSDN通过智能技术生成

// 测试枚举类的get方法

System.out.println(Season.SPRING.getId()+“-”+Season.SPRING.getDesc());

// 测试枚举类,及实例实现的抽象方法

Season.SPRING.info();

Season.SUMMER.info();

Season.SPRING.test();

// switch判断的参数可以传入byte,short,char,int,String,枚举类类型数据

switch(Season.SPRING){

case WINTER:

System.out.println(“switch winter”);

break;

case SUMMER:

System.out.println(“switch summer”);

break;

case FALL:

System.out.println(“switch fall”);

break;

case SPRING:

System.out.println(“switch spring”);

break;

default:

System.out.println(“输入非合法季节”);

}

}

}

// 使用enum关键字定义的枚举类,默认继承java.lang.Enum类

// 枚举类实现接口

// 枚举类包含抽象方法,系统会隐式加abstract修饰,但不能显式加abstract

enum Season implements Info{

// 枚举类实例必须定义在枚举类定义中第一行,实例间以逗号隔开,以分号结束。

// 枚举类实例其实是实例名, 类似于 Season SPRING = new Season();

// 枚举类实例默认使用public static final修饰,即public static final SeaSon SPRING = new Season();

// 枚举类实例后面是否跟参数,取决与构造器定义

SPRING(1,“春”){

@Override

public void test() {

System.out.println(“测试春天”);

}

},

// 枚举类实现接口,也可以基于枚举类实例来重写接口抽象方法

// 枚举类包含抽象方法,只能基于枚举类实例来重写抽象方法

/**

  • 基于枚举类实例重写抽象方法,其实是定义枚举类的匿名内部类,即枚举类的子类实例

  • public static final SUMMER = new Season(){

  • 重写抽象方法
    
  • }

*/

SUMMER(2,“夏”){

@Override

public void info() {

System.out.println(“这是夏天”);

}

@Override

public void test() {

System.out.println(“测试夏天”);

}

},

FALL(3,“秋”){

@Override

public void info() {

System.out.println(“这是秋天”);

}

@Override

public void test() {

System.out.println(“测试秋天”);

}

},

WINTER(4,“冬”){

@Override

public void info() {

System.out.println(“这是冬天”);

}

@Override

public void test() {

System.out.println(“测试冬天”);

}

};

// 枚举类的成员变量建议使用private final修饰

private final int id;

private final String desc;

// 枚举类的构造器只能使用private修饰,private可以省略

private Season(int id,String desc){

this.id = id;

this.desc = desc;

}

// 枚举类只提供get方法,不提供set方法

public int getId(){

return id;

}

public String getDesc(){

return desc;

}

// 枚举类实现接口可以基于类来实现接口的抽象方法

public void info(){

System.out.println(“这是季节枚举类”);

}

// 枚举类包含抽象方法

public abstract void test();

}

interface Info{

void info();

}

思考题

===

1.枚举类是否可以派生子类?


需要分情况讨论

①抽象枚举类可以派生子类

②非抽象枚举类不可以派生子类

具体枚举类啥时候是抽象的,啥时候是非抽象的请看3

2.枚举类的构造器是私有的,那么枚举类如何派生子类? 我们知道子类的构造器最终(子类构造器重载时,总会有一个构造器第一行或隐式调用父类构造器)都会调用父类构造器,但是子类不能访问父类私有成员,而枚举类的构造器是私有。


注意只有抽象枚举类可以派生子类,非抽象枚举类不能派生子类。

我们还需要知道枚举类第一行必须定义该枚举类的实例。

对于抽象枚举类,如定义抽象方法的枚举类

enum Season{

SPING{

public void test(){

System.out.println(“spring”);

}

},

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:前端)

最后的最后

面试题千万不要死记,一定要自己理解,用自己的方式表达出来,在这里预祝各位成功拿下自己心仪的offer。
需要完整面试题的朋友可以点击蓝色字体免费获取

大厂面试题

面试题目录

jpg" />

最后的最后

面试题千万不要死记,一定要自己理解,用自己的方式表达出来,在这里预祝各位成功拿下自己心仪的offer。
需要完整面试题的朋友可以点击蓝色字体免费获取

[外链图片转存中…(img-sJyzS8MI-1712372404185)]

[外链图片转存中…(img-HJBba2eG-1712372404186)]

[外链图片转存中…(img-LwoOHq32-1712372404186)]

[外链图片转存中…(img-qGgQwvUI-1712372404186)]

  • 21
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值