我奶奶都能懂java枚举类型_枚举类getoperation()

定义

所谓的枚举就是一一列举出来的意思,那么枚举类型就是一个能将使用到的常量一一列举出来的类型,它是一个特殊的数据类型,能够为一个变量定义一组预定义的常量,例如“周几”这个变量,我们可以为其预定义一组常量,从周一到周日并放入到一个类中,那么这个类就叫着“周几”的枚举类,也就是说将所有可能的值都列举出来再用一个类进行封装。由于枚举类型属于java类中的一种,因此它也可以拥有成员变量和方法。

结构

正常的类定义时使用class关键字,而枚举类型使用enum,包括枚举项,构造方法(注意:这里是私有的),成员变量,成员方法。其中枚举项相对于正常的class它是一个新的概念,在枚举类中枚举项是就是这个类的对象(跟正常的类不一样,注意区分,下文中会举例,相信你会明白),因此它会有自己的属性(变量和方法),所以在定义枚举项时可以调用构造方法,不调用的话直接默认为无参构造方法。

//枚举类的结构,注意关键字是enum
public enum 枚举类名{
	枚举项1,枚举项2,枚举项3...;
	构造方法 //private 
	成员变量
	成员方法
}

使用

正常情况下,如果使用到很多常量,而这些常量可以用在同一个业务场景,那么建议使用枚举类型。例如,隔壁老王干完坏事开溜,可以选择从正门出走楼梯,也可以选择从窗户跳下去,也可以选择躲在衣柜里继续睡,这三种情况都对应着老王“逃”的这个业务场景,因此可以将这三种情况封装成枚举类型。在使用之前强调4点

  • 枚举类型都继承java.lang.Enum,所以枚举类不能再继承其它类型。
  • 定义枚举项时,多个枚举项之间需要使用“,”隔开,通常使用大写,因为它是一个常量,所以按照java的惯例应该使用大写。
  • 枚举类型的构造方法使用private
  • 通过枚举类名.枚举项名称去访问指定的枚举项
  • 枚举类型可以实现接口

普通用法

示例1:不使用枚举类型

/\*\*
 \*常量类
 \*/
public class Escape {
	public final static String DOOR = "老公没到小区";
	public final static String DOOR_OPERATION = "从正门出去";
	
	public final static String WINDOW = "老公上楼了";
	public final static String WINDOW_OPERATION = "翻窗子出去";
	
	public final static String CABINET = "老公进客厅了";
	public final static String CABINET_OPERATION = "不行了,躲柜子里";

}

在不使用枚举的情况,用了一堆常量,不方便维护。

示例2:使用枚举类型

public enum EscapeEnum {
	//定义枚举项
	DOOR("老公没到小区","从正门出去"),
	WINDOW("老公上楼了","翻窗子出去"),
	CABINET("老公进客厅了","不行了,躲柜子里");
	private String location;
	private String operation;
	
	
	//private 构造方法
	private EscapeEnum() {}

	private EscapeEnum(String location, String operation) {
		this.location = location;
		this.operation = operation;
	}

	public String getLocation() {
		return location;
	}

	public void setLocation(String location) {
		this.location = location;
	}

	public String getOperation() {
		return operation;
	}

	public void setOperation(String operation) {
		this.operation = operation;
	}	
}

使用枚举类型后,之前的成对常量都被封装在枚举项中了,可读性明显增强。

public class EnumTest {

	public static void main(String[] args) {
		//枚举项就是一个对象
		EscapeEnum door = EscapeEnum.DOOR;
		System.out.println(door.getLocation());
		System.out.println(door.getOperation());
	}

}

枚举比较

枚举的比较通过用在条件分支中,例如switch case中,if中使用的话使用"=="

示例1:switch中进行比较

public class CompareSwitchTest {
	public static void main(String[] args) {
		EscapeEnum escapeEnum = EscapeEnum.DOOR;
		switch(escapeEnum) {
		case DOOR:
			System.out.println("从正门出去");
			break;
		case WINDOW:
			System.out.println("翻窗子出去");
			break;
		case CABINET:
			System.out.println("不行了,躲柜子里");
			break;
		default:break;
		}
	}
}

示例2:if分支中进行比较

public class CompareIfTest {
	public static void main(String[] args) {
		EscapeEnum escapeEnum = EscapeEnum.DOOR;
		if(escapeEnum == EscapeEnum.DOOR) {
			System.out.println("从正门出去");
		}else if (escapeEnum == EscapeEnum.WINDOW) {
			System.out.println("翻窗子出去");
		}else if(escapeEnum == EscapeEnum.CABINET) {
			System.out.println("不行了,躲柜子里");
		}
	}
}


枚举类型实现接口

枚举类型可以实现接口,实现的方式跟普通的类没什么区别。

示例:模拟HttpCode

最后,附一张自己面试前准备的脑图:

image

面试前一定少不了刷题,为了方便大家复习,我分享一波个人整理的面试大全宝典

  • Java核心知识整理

image

  • Spring全家桶(实战系列)

image.png

Step3:刷题

既然是要面试,那么就少不了刷题,实际上春节回家后,哪儿也去不了,我自己是刷了不少面试题的,所以在面试过程中才能够做到心中有数,基本上会清楚面试过程中会问到哪些知识点,高频题又有哪些,所以刷题是面试前期准备过程中非常重要的一点。

以下是我私藏的面试题库:

image

很多人感叹“学习无用”,实际上之所以产生无用论,是因为自己想要的与自己所学的匹配不上,这也就意味着自己学得远远不够。无论是学习还是工作,都应该有主动性,所以如果拥有大厂梦,那么就要自己努力去实现它。

最后祝愿各位身体健康,顺利拿到心仪的offer!
会问到哪些知识点,高频题又有哪些,所以刷题是面试前期准备过程中非常重要的一点。

以下是我私藏的面试题库:

[外链图片转存中…(img-kiOInkBS-1721188494256)]

很多人感叹“学习无用”,实际上之所以产生无用论,是因为自己想要的与自己所学的匹配不上,这也就意味着自己学得远远不够。无论是学习还是工作,都应该有主动性,所以如果拥有大厂梦,那么就要自己努力去实现它。

最后祝愿各位身体健康,顺利拿到心仪的offer!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值