概述
本篇文章给大家带来了关于java的相关知识,其中主要介绍了关于枚举的相关问题,包括了枚举的基本操作、集合类对枚举的支持等等内容,下面一起来看一下,希望对大家有帮助。
推荐学习:《java视频教程》
案例引入
定义一个color,只能定义红、绿、蓝三种颜色
普通方法
那么如何解决这种问题,让color只能在三种颜色中选一种???
Enum类和enum关键字
public enum Color {
RED,
GREEN,
BLUE;}
登录后复制
枚举常用的方法
代码
public class EnumTest {
public static void main(String[] args) {
//定义一个color变量,只能设置为RED、GREEN、BLUE
Color color = Color.BLUE;
System.out.println(color);
System.out.println(color.name());
System.out.println(color.toString());//三种方式都是打印名字
System.out.println(color.ordinal());//返回枚举的序号RED--0、GREEN--1、BLUE--2
Color[] values = Color.values();//返回所有枚举类型
System.out.println(Arrays.toString(values));
}}
登录后复制
枚举的基本操作
带构造方法的枚举
枚举不允许从外部调用,所以只能是private修饰
构造方法只能在对象中调用
public enum Color {
RED(10),
GREEN(20),
BLUE;
private int Number;//属性
private Color() {//默认构造方法
System.out.println("无参构造器被调用了!!!");
}
private Color(int Number) {
this.Number = Number;
System.out.println("有参构造器被调用了!!!");
}
public int getNumber(){
return Number;
}}
登录后复制
主方法
public class EnumTest {
public static void main(String[] args) {
Color color = Color.RED;
System.out.println(color.name());
System.out.println(color.getNumber());//获取Number的值
}}
登录后复制
枚举实现接口
方式1:在枚举对象内部实现接口中的方法
interface info{
public String getColor();}public enum Color implements info{
RED{
@Override
public String getColor() {return "红色";}
},
GREEN{
@Override
public String getColor() {return "绿色";}
},
BLUE{
@Override
public String getColor() {return "蓝色";}
};}
登录后复制
方式2:在枚举类中实现接口中的方法
interface info{
public String getColor();}public enum Color implements info{
RED,GREEN,BLUE;
@Override
public String getColor() {
return null;
}}
登录后复制
主方法
public class EnumTest {
public static void main(String[] args) {
Color color = Color.RED;
System.out.println(color.getColor());
}}
登录后复制
枚举实现抽象方法
枚举类
public enum Color {
RED{
@Override
public String getColor() {return "红色";}
},
GREEN{
@Override
public String getColor() {return "绿色";}
},
BLUE{
@Override
public String getColor() {return "蓝色";}
};
//在枚举中定义一个抽象方法,通过枚举对象实现
public abstract String getColor();}
登录后复制
主方法
public class EnumTest {
public static void main(String[] args) {
Color color = Color.BLUE;
System.out.println(color.getColor());
}}
登录后复制
枚举实现单例模式
枚举类
public enum Singletion {
SINGLETION;
public void Method(){
System.out.println("使用枚举实现单例模式!!!");
}}
登录后复制
主方法
public class EnumTest {
public static void main(String[] args) {
Singletion singletion=Singletion.SINGLETION;
singletion.Method();
}}
登录后复制
集合类对枚举的支持
EnumSet
代码
import java.util.EnumSet;public class EnumTest {
public static void main(String[] args) {
EnumSet<Color> set = EnumSet.allOf(Color.class);//把一个枚举类型全部填充到集合中去
for (Color c : set) {
System.out.println(c.name());
}
}}
登录后复制
EnumMap
代码
import java.util.EnumMap;public class EnumTest {
public static void main(String[] args) {
EnumMap<Color, String> map = new EnumMap<>(Color.class);
map.put(Color.RED, "红色");
map.put(Color.GREEN, "绿色");
map.put(Color.BLUE, "蓝色");
System.out.println(map.get(Color.RED));
}
登录后复制
推荐学习:《java视频教程》
以上就是Java基础归纳之枚举的详细内容,更多请关注靠谱客其它相关文章!
最后
以上就是坦率御姐为你收集整理的Java基础归纳之枚举的全部内容,希望文章能够帮你解决Java基础归纳之枚举所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复