JAVA 枚举类 enum

Java面试知识点(二十九)Java枚举类enum 枚举类enum 示例代码 enum Color{ RED,BLUE,YELLOW; } enum 和 class、interface 的地位一样 枚举enum)类型是 Java 5 新增的特性,它是一种新的类型,允许用常量来表示特定的数据片断,而且全部都以类型安全(类型安全的代码不会试图访问自己没被授权的内存区域)的形式来表示。 使用 enum 定义的枚举类默认继承了 java.lan... 阅读详情
DEMO1:
public class Student {
	
	//姓名
	private String name;
	
	//分数类
	private Grade grade;
	
	public Student(){}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public Grade getGrade() {
		return grade;
	}

	public void setGrade(Grade grade) {
		this.grade = grade;
	}
	
}

//分数枚举类
public enum Grade {
    A("A","90-100"),
    B("B","80-89"),
    C("C","70-79"),
    D("D","60-69"),
    E("E","<60");
    private String tip;
    private String desc;
    private Grade(String tip,String desc){
        this.tip = tip;
        this.desc = desc;
    }
    public String getTip() {
        return tip;
    }
    public String getDesc() {
        return desc;
    }
}

public class Demo1 {
	public static void main(String[] args) throws Exception {
		Student student = new Student();
		student.setName("jack");
		student.setGrade(Grade.B);
		System.out.println("姓名:" + student.getName());
		System.out.println("等级:" + student.getGrade().getTip());
		System.out.println("分数区间:" + student.getGrade().getDesc());
	}
}
////////////////////////////////////////////////
DEMO2 :
//季节枚举类
public enum Season{
    SPRING{
        public void show(){
            System.out.println("春天");
        }
    },SUMMER{
        public void show(){
            System.out.println("夏天");
        }
    },AUTOMN{
        public void show(){
            System.out.println("秋天");
        }
    },WINNTER{
        public void show(){
            System.out.println("冬天");
        }
    };
    //抽像方法
    public abstract void show();
}
为什么需要枚举?
一些方法在运行时,它需要的数据不能是任意的,而必须是一定范围内的值,此类问题在JDK5以前采用自定义带有枚举功能的类解决,Java5以后可以直接使用枚举予以解决。
枚举类具有如下特性:
枚举类也是一种特殊形式的Java类。
枚举类中声明的每一个枚举值代表枚举类的一个实例对象。
与java中的普通类一样,在声明枚举类时,也可以声明属性、方法和构造函数,但枚举类的构造函数必须为私有的(这点不难理解)。
枚举类也可以实现接口、或继承抽象类。
JDK5中扩展了switch语句,它除了可以接收int, byte, char, short外,还可以接收一个枚举类型。
若枚举类只有一个枚举值,则可以当作单态设计模式使用。
Java中声明的枚举类,均是java.lang.Enum类的孩子,它继承了Enum类的所有方法。常用方法:
name()
ordinal()
valueOf(Class enumClass, String name)
values() 此方法虽然在JDK文档中查找不到,但每个枚举类都具有该方法,它遍历枚举类的所有枚举值非常方便。









        
Java new String getBytes 使用utf8静态枚举 StandardCharsets.UTF_8 StandardCharsets类是Java中的一个工具类,它提供了一组标准字符集常量。StandardCharsets类位于java.nio.charset包中,是一个final类,不能被继承。使用StandardCharsets类可以方便地指定字符集,例如在读取或写入文件时指定字符集,或者在网络通信中指定字符集。这个示例演示了如何使用StandardCharsets类将字符串编码为字节数组,并将字节数组解码为字符串。如果您使用的是 Java 8 或更早的版本,这些常量将不可用。在这个示例中,我们使用。 阅读详情

相关推荐

Java枚举类学习到进阶

枚举类型是Java 5中新增特性的一部分,它是一种特殊的数据类型,之所以特殊是因为它既是一种类(class)类型却又比类类型多了些特殊的约束,但是这些约束的存在也造就了枚举类型的简洁性、安全性以及便捷性。 △有的地方还没有学的透彻,之后会继续学习修改更新本文章 1.枚举类学习 1.1 定义枚举类 枚举类可以实现一个或多个接口,使用enum定义的枚举类默认继承了java.lang.Enum类,...

weixin_34254823的博客 294

利用Java枚举实现策略模式

我们在使用Java枚举时往往会结合Switch来进行判断以实现不同值的处理,但是我们知道多用switch不是一种很好的代码风格,不利用维护和适应变化,因为这不符合开-闭原则。为此一种方法是用策略模式来重构原有的枚举实现,但是很多时候确实需要用枚举的方法来实现,如一周的天数等等,这也是JDK5.0重新引入枚举的原因。Joshua Bloch在Effective Java(第二版)里提出了一...

hyxw5890的专栏 2260

Java 枚举类 浅析

enum

m0_61654277的博客 473

Java_枚举_8

枚举Java中的一种特殊类型。枚举的作用:是为了做信息的标志和信息的分类。定义枚举的格式:修饰符 enum 枚举名称{第一行都是罗列枚举实例的名称。枚举类的编译以后源代码:枚举的特点:1.枚举类是用final修饰的,枚举类不能被继承!2.枚举类默认继承了java.lang.Enum枚举类。3.枚举类的第一行都是常量,存储都是枚举类的对象。4.枚举类的第一行必须是罗列枚举类的实例名称。。

A_shmily_的博客 410

Java enum 枚举类

如果针对于某个类,其实例是确定个数,则推荐将此类声明为枚举类。如果枚举类的实例只有一个,则可以看作时单例的实现方式。

qq_35899077的博客 1410

【08Java枚举类】简单易懂enum

【08Java枚举类enum作为一个全新定义的类型,是希望能够帮助程序员写出的代码更加简单易懂】

小鳴人的博客 2155

Java枚举类enum原理详解

Java枚举类enum原理详解为什么要使用枚举类枚举类原理三、enum类所继承的父类java.lang.Enum其他用法附java.lang.Enum源码 为什么要使用枚举类 枚举类enum作为Java5新增特性的一部分,是用来代替常量的。 比如以下场景,定义一年的四个季节: public class Season { public final int SPRING = 1; pu...

qq_34826261的博客 1269

Java Enum枚举类

Java Enum枚举类 枚举类: 定义一种事物的所有可能|情况 ​ 1.使用enum定义枚举,枚举是类,所有的枚举类,都会隐式的继承自java.lang.Enum–>构造器受保护的 ​ 2.枚举中的所有字段,都是该类型的一个实例,枚举类型不允许外部构建对象,默认构造器是私有的 ​ 枚举中的字段–>public static final public class EnumDem...

weixin_45020637的博客 212

enum枚举类 - Java

enum枚举类

yavlgloss的博客 955

JAVA Enum枚举类详解

在一些情况下,一个类的对象是有限且固定的,如季节类,只有春夏秋冬4个对象,这种实例有限且固定的类,在JAVA里称为枚举类。   1.手动实现枚举类 采用的设计方式: 通过private将构造器隐藏起来 把这个类所有可能的实例都使用public static final修饰的类变量来保存   首先定义一个Season类 public class Season{ private fi

cxy_d的博客 1813

java 记录enum枚举类的使用

关键字enum是一个很有用的功能,它可以将一组具名的值得有限集合创建为一种新的类型,而这些具名的值可以为常规的程序组件使用。除了不能继承自一个enum之外,我们基本上可以将enum看做一个常规的类。也就是说,我们可以在enum中添加方法。enum甚至可以拥有main方法。 ---[美] Bruce Eckel

m0_59259076的博客 1128

Java枚举类enum

枚举类的理解: 1. values()方法:返回枚举类型的对象数组,可以方便遍历所有枚举值 2. valueOf(String str):可以把一个字符串转化为对应的枚举类对象。要求字符串必须是枚举类的对象名 3. toString():返回当前枚举类对象常量的名称 > 类的对象只有有限个,确定的,我们称此类为枚举类。 > > 当需要定义一组常量是,强烈建议使用枚举类

m0_69383623的博客 438

Java中的enum枚举类

引出:如果我们有一个类Season表示季节,众所周知季节只有春夏秋冬四个,我们为了避免出现定义错误的季节对象,就要使用到enum枚举类枚举类可以帮助我们固定好实例化对象,使我们不能进行修改

不会算法的小白的博客 121

Java 枚举类Enum使用方法详解及常用方法介绍

前言:开发中我们经常需要定义一组常量,这时我们就可以使用枚举类。 注意:使用枚举类有个前提,就是我们这组常量的个数是有限个。例如:星期、四季、性别、支付方式、就职状态、线程装填等。 JDK1.5之前我们需要自定义枚举类,JDK1.5新增enum关键字。 1. 如何自定义枚举类呢?并不难,需要注意一下几个点: 1)枚举对象的属性不允许别改动,所以应该使用private final关键字。 2)枚举类中使用private final 修饰的属性应当在构造器中赋值。 3)若枚举类显示定义了带参构造器,则在列举枚

qq_43437122的博客 7619

java枚举类enum的实质

当一个java类的对象只有有穷多个而且很少的时候,我们常常把这个java类定义为enum,即枚举类,首先要明白使用enum定义的java类也是一个类。比如java.lang.Thread.State就是一个枚举类,看一下它的定义: publicenumState{ NEW, RUNNABLE, BLOCKED, ...

xiaozhuangyumaotao的博客 242

Java基础之枚举类Enum的使用

Java基础之枚举类Enum的使用 定义 public enum AccruedCleanEnum { SPREAD("1","发票"),OTHER("0","收入"),NON_BUSINESS("2","支出"); private String index; private String name; AccruedCleanEnum(String inde...

Lan_Xuan 418

[Java枚举类] 枚举类的创建、Enum类中的常用方法、使用 enum 关键字定义的枚举类实现接口

根据尚硅谷的视频做的JUC学习笔记 目录一、枚举类的创建1. 自定义枚举类2. 使用 enum 关键字定义枚举类二、Enum 类中的常用方法三、使用 enum 关键字定义的枚举类实现接口1. 实现接口,在enum类中实现抽象方法2. 让枚举类的对象分别实现接口中的抽象方法 一、枚举类的创建 1. 自定义枚举类 步骤:(1)声明Season对象的属性:private final修饰(2)2.私有化类的构造器,并给对象属性赋值(3)提供当前枚举类的多个对象:public static final的(4)其他诉

qq_37109317的博客 1775

java枚举类enum

java枚举类enum一、枚举类的作用二、如何定义枚举类三、枚举中的方法四、使用enum定义的枚举类实现接口的情况五、示例代码1.自定义枚举类型2.使用enum关键字定义枚举类 一、枚举类的作用 类的对象只有有限个,确定的。我们称此类为枚举类 当需要定义一组常量时,强烈建议使用枚举类 如果枚举类中只有一个对象,则可以作为单例模式的实现方式。 二、如何定义枚举类 jdk5.0之前,自定义枚举类 jdk5.0,可以使用enum关键字定义枚举类 三、枚举中的方法 values()方法:返回枚举类型的

weixin_43824267的博客 359
上一篇: java 开发 觉得展示ui太丑,一个专门javascript的插件网,把数据结构通过这些图形展示
下一篇: 简单算法 n个学生的最高分。
java_utf8
博客等级 码龄10年 133粉丝 48原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值