Java最新比起睡觉,我更喜欢刷巨详细的Java枚举类,这是来自猿人的自觉呀,java一年经验面试题

最后

毕竟工作也这么久了 ,除了途虎一轮,也七七八八面试了不少大厂,像阿里、饿了么、美团、滴滴这些面试过程就不一一写在这篇文章上了。我会整理一份详细的面试过程及大家想知道的一些问题细节

美团面试经验

美团面试
字节面试经验
字节面试
菜鸟面试经验
菜鸟面试
蚂蚁金服面试经验
蚂蚁金服
唯品会面试经验
唯品会

因篇幅有限,图文无法详细发出

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

方法二

public static final Gender BOY;

public static final Gender GIRL;

static {

BOY = new Gender();

GIRL = new Gender();

}

public Gender() {

}*/

/*

方法三

public static final Gender BOY =new Gender();

public static final Gender GIRL =new Gender();

public Gender() {

}

public static Gender getBOY() {

return BOY;

}

public static Gender getGIRL() {

return GIRL;

}*/

}

测试类

package com.atguigu.demo;

import com.atguigu.bean.Gender;

import com.atguigu.bean.Person;

public class Demo2 {

public static void main(String[] args) {

Person person = new Person();

person.setId(10);

person.setName(“张三”);

person.setGender(Gender.BOY);

System.out.println(person.getName()+“的性别是:”+person.getGender().getValue());

}

}

JDK1.5之后


创建枚举类

在JDK.5之后,Java提供了enum关键字来快速的定义枚举类型,这样枚举类实现起来就非常方便了。其实现语法如下:

【修饰符】 enum 枚举类名{

常量对象列表

}

【修饰符】 enum 枚举类名{

常量对象列表;

其他成员列表;

}

虽然方便实现了,但是该方法实现枚举类也有很多需要注意的点:

  • ①枚举类的构造器默认是私有的,并且必须是私有的

  • ② 直接写对象名即可(对象与对象之间采用逗号隔开,最后使用分号)

  • ③ 默认是采用无参构造器(后期可以设置)

  • ④ 对象默认就是共有的静态的常量

  • ⑤ 对象列表必须在类的首行

  • ⑥ 如果显示的创建了有参的构造器,没有无参构造器

对象的创建就需要使用有参构造器 ,每个对象后面加小括号

  • ⑦ JDK1.5之后switch,提供支持枚举类型,case后面可以写枚举常量名

代码示例

枚举类

package com.atguigu.bean;

public enum Gender2 {

// BOY,GIRL; 无参

BOY(“男孩”), GIRL(“女孩”); //必须在第一行

private String value;

Gender2(String value) {

this.value =value ;

}

public String getValue() {

return value;

}

@Override

public String toString() {

return value;

}

}

测试类

package com.atguigu.demo;

import com.atguigu.bean.Gender2;

public class Demo3 {

public static void main(String[] args) {

Gender2 gender2 = Gender2.BOY; //通过类名可以调用说明是静态的,跨包是共有的

// Gender2.BOY = Gender2.Girl; 不可以更改说明是常量

System.out.println(gender2.getValue());

//返回该枚举类所有的常量对象,(后面会说到这个方法)

Gender2[] gender21 =Gender2.values();

for (int i = 0; i < gender21.length; i++) {

switch(values[i]){

case BOY:

System.out.println(values[i]+“:男孩”);

break;

case GIRL:

System.out.println(values[i]+“:女孩”);

break;

}

}

}

枚举类继承父类


基本介绍

枚举类默认继承的是java.lang.Enum类,因此不能再继承其他的类。继承了Enum类的枚举类默认有以下几种方法:

name(); //获取对象的名称

toString(); //返回也是对象的名称,自定义的枚举类可以再次重写

ordinal(); //返回当前对象的位置(角标)

static values(); //返回该枚举类所有的常量对象

static valueOf(String name); //根据字符串的名称,返回常量对象

注:枚举类也不能被其他类继承

代码示例

测试类

package com.atguigu.demo;

import com.atguigu.bean.Gender2;

public class Demo3 {

public static void main(String[] args) {

Gender2 gender2 = Gender2.BOY;

//获取对象的名称

System.out.println(gender2.name());

//返回也是对象的名称,自定义的枚举类可以再次重写

System.out.println(gender2.toString());

//返回当前对象的位置(角标)

System.out.println(gender2.ordinal());

//返回该枚举类所有的常量对象

Gender2[] gender21 =Gender2.values();

for (int i = 0; i < gender21.length; i++) {

System.out.println(gender21[i]);

}

//根据字符串的名称,返回常量对象

String str = “BOY”;

Gender2 gender22 = Gender2.valueOf(str);

System.out.println(gender22);

}

}

枚举类实现接口


基本介绍

枚举类虽然不能继承其他的类,但是枚举类也是类,可以实现接口,可以同时实现多个接口。可以统一实现,也可以用匿名内部类的形式,单独给某个常量对象实现抽象方法。

修饰符 类名 implements 接口名{

}

注意:

  • 枚举类提供的对象个数是确定的,并且在类加载的时候对象已经产生了。所以,抽象方法的实现,可以将范围缩小到某个对象

常量对象 【(实参列表)】{

对父级做扩展

}

  • 当枚举类中所有的对象都单独对抽象方法做了实现,那么公有的实现就可以删除

代码示例

最后

由于篇幅有限,这里就不一一罗列了,20道常见面试题(含答案)+21条MySQL性能调优经验小编已整理成Word文档或PDF文档

MySQL全家桶笔记

还有更多面试复习笔记分享如下

Java架构专题面试复习

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

常量对象 【(实参列表)】{

对父级做扩展

}

  • 当枚举类中所有的对象都单独对抽象方法做了实现,那么公有的实现就可以删除

代码示例

最后

由于篇幅有限,这里就不一一罗列了,20道常见面试题(含答案)+21条MySQL性能调优经验小编已整理成Word文档或PDF文档

[外链图片转存中…(img-gM3R6bIb-1715437177435)]

还有更多面试复习笔记分享如下

[外链图片转存中…(img-S872UeiD-1715437177435)]

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值