目录
一、枚举类概述:
1.枚举类概述:
2.枚举类的属性:
二、自定义枚举类(JDK 5.0前):
三、enum关键字定义枚举类(JDK 5.0后):
Enum API:
enum类实现接口:
一、枚举类概述: 1.枚举类概述:
枚举类:类的对象只有有限个,确定多个时,我们称这个类为枚举类。当需要定义一组常量时,强烈建议使用没枚举类。
如果枚举类只有一个对象,则可以作为一种单例模式的实现方式。
【百面JAVA】<JavaSE面试题>编写Singleton示例-单例模式_范同学的知识分享园地!-CSDN博客目录面试题目????:编写结果????:1.饿汉式:方法一:直接实例化饿汉式方法二:枚举式方法三:静态代码块饿汉式2.懒汉式:方法一:线程不安全方法二:线程安全方法三:静态内部类形式题目解析✏️:1.什么是Singleton?要点:2.几种常见形式:饿汉式:懒汉式:面试题目????:编写一个Singleton示例!编写结果????:1.饿汉式:方法一:直接实例化饿汉式/** * 饿汉式: * 直接创建实例对象,不https://blog.csdn.net/weixin_52058417/article/details/122145183
2.枚举类的属性:- 枚举类对象属性不应允许修改,应该使用private final修饰
- 枚举类使用private final修饰的属性应该在构造器中为其赋值
- 枚举类显示定义了带参数的构造器,则在列出枚举值时也必须对应的传入参数
二、自定义枚举类(JDK 5.0前):
- 私有化成员属性,使用private final关键字修饰
- 私有化构造器,如果含有成员属性,需要在构造器中对成员属性进行赋值 *** 作
- 在类的内部创建需要个数的实例,提供该实例
- 类内部提供其它需要的 *** 作
//自定义枚举类: class TestClass{ //1.成员属性私有化,使用private final修饰: private final String name; private final String desc; //2.私有化构造器,在内的内部创建好实例对象,不允许类外创建该枚举类实例: private TestClass(String name, String desc){ //对成员属性进行初始化赋值 this.name = name; this.desc = desc; } //3.对外提供该枚举类的有限个实例对象: public TestClass t1 = new TestClass("t1", "desc01"); public TestClass t2 = new TestClass("t2", "desc02"); //4.定义其它 *** 作 }
三、enum关键字定义枚举类(JDK 5.0后):
- 直接提供该枚举类实例,如果实例含有成员属性,使用()括号定义属性,提供相应的构造方法。
- 定义成员属性,使用private final修饰
- 枚举类构造方法默认是private,在构造方法中对成员属性进行初始化赋值 *** 作
- 提供其它需要的 *** 作
enum TestEnum{ //1.提供该枚举的实例化对象,多个对象之间使用,(逗号)隔开,末尾;(分号结束) t1("t1","desc1"),t2("t2","desc2"); //2.成员属性使用private final修饰: private final String name; private final String desc; //3.私有化构造器,如果有成员属性,对成员属性进行赋值: private TestEnum(String name, String desc){ //构造方法没有返回值,方法名和类名一致 this.name = name; this.desc = desc; } //4.其它 *** 作 }
使用enum关键字定义枚举类,默认继承于,java.lang.Enum类
Enum API:- values():返回枚举类型的对象数组。该方法可以很方便的遍历所有的枚举值
- valueof(String objName):返回当前枚举类中,对象名是objName的对象
- 如果objName对象不存在当前枚举类中,抛出异常java.lang.IllegalArgumentException
- 实现接口,在enum类中实现抽象方法
- 让枚举类的对象分别实现接口中的抽象方法,此时,可以针对不同的实例定义不同的方法实现
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)