JAVASE基础模块四十四( 枚举 自己实现枚举类 enum关键字实现枚举)

编程入门 行业动态 更新时间:2024-10-11 05:20:45

JAVASE基础<a href=https://www.elefans.com/category/jswz/34/1771428.html style=模块四十四( 枚举 自己实现枚举类 enum关键字实现枚举)"/>

JAVASE基础模块四十四( 枚举 自己实现枚举类 enum关键字实现枚举)

JAVASE基础知识模块四十四( 枚举 自己实现枚举类 enum关键字实现枚举)

枚举

  • JDK1.5的新特性: 自动拆装箱 泛型 增强for 可变参数 枚举
  • 概述:就是一个类只能存在几个固定的对象 那么这个就是枚举 我们就可以使用这些对象表示一些固定的值

案例

枚举类的自己实现
  1. 枚举方向属性并赋值
package MeiJu.X1;public class Mei {public static void main(String[] args) {FangXiang front=FangXiang.FRONT;FangXiang behind=FangXiang.BEHIND;FangXiang left=FangXiang.LEFT;FangXiang right=FangXiang.RIGHT;System.out.println(front.name);System.out.println(behind.name);System.out.println(left.name);System.out.println(right.name);}
}
class FangXiang {public static final FangXiang FRONT=new FangXiang("前");public static final FangXiang BEHIND=new FangXiang("后");public static final FangXiang LEFT=new FangXiang("左");public static final FangXiang RIGHT=new FangXiang("右");String name;private FangXiang(String name) {this.name = name;}
}
运行结果:
前
后
左
右
  1. 抽象枚举方向属性并赋值
package MeiJu.X1;public class Mei {public static void main(String[] args) {FangXiang front=FangXiang.FRONT;FangXiang behind=FangXiang.BEHIND;FangXiang left=FangXiang.LEFT;FangXiang right=FangXiang.RIGHT;System.out.println(front.name);System.out.println(behind.name);System.out.println(left.name);System.out.println(right.name);}
}
class FangXiang {public static final FangXiang FRONT=new FangXiang("前");public static final FangXiang BEHIND=new FangXiang("后");public static final FangXiang LEFT=new FangXiang("左");public static final FangXiang RIGHT=new FangXiang("右");String name;private FangXiang(String name) {this.name = name;}
}
运行结果:
前
后
左
右
enum关键字
  • 定义枚举类要用关键字enum
  • 特点与注意事项
    1. 所有枚举类都是Enum的子类,但是不要显式的写出来
    2. 枚举类的第一行上必须是枚举项,最后一个枚举项后的分号是可以省略的,但是如果枚举类有其他的东西,这个分号就不能省略。建议不要省略
    3. 枚举类可以有构造器,但必须是private的,它默认的也是private的。枚举项的用法比较特殊:枚举(“”)
    4. 枚举类也可以有抽象方法,但是枚举项必须重写该方法
    5. 枚举在switch语句中的使用
  • 方法
int ordinal()  返回枚举项的序号
int compareTo(E o) 比较两个枚举项的 返回的是两个枚举项序号的 差值
String name() 获取枚举项的名称
String toString()获取枚举项的名称
<T> T valueOf(Class<T> type,String name) 用来获取指定的枚举项  参数1:枚举类对应的字节码对象 参数2 枚举项的名称
values()  获取所有的枚举
  • 案例一 普通枚举
package MeiJu.X1;public class MeiJu {public static void main(String[] args) {Meij front = Meij.FRONT;Meij behind = Meij.BEHIND;Meij left = Meij.LEFT;Meij right = Meij.RIGHT;System.out.println(front);System.out.println(behind);System.out.println(left);System.out.println(right);}
}
enum Meij {FRONT, BEHIND, LEFT, RIGHT;
}
运行结果:
FRONT
BEHIND
LEFT
RIGHT
  • 案例二 枚举赋值
package MeiJu.X1;public class MeiJu1 {public static void main(String[] args) {Meij1 front = Meij1.FRONT;Meij1 behind = Meij1.BEHIND;Meij1 left = Meij1.LEFT;Meij1 right = Meij1.RIGHT;System.out.println(front.name);System.out.println(behind.name);System.out.println(left.name);System.out.println(right.name);}
}
enum Meij1 {FRONT("前"),BEHIND("后"),LEFT("左"),RIGHT("右");String name;private Meij1(String name){this.name = name;}}
运行结果:
前
后
左
右
  • 案例三 抽象枚举
package MeiJu.X1;enum Meij2 {FRONT("前") {@Overridepublic void show(String name) {}},BEHIND("后") {@Overridepublic void show(String name) {}},LEFT("左") {@Overridepublic void show(String name) {}}, RIGHT("右") {@Overridepublic void show(String name) {}};String name;private Meij2(String name) {this.name = name;}public abstract void show(String name);
}public class MeiJu2 {public static void main(String[] args) {Meij2 front = Meij2.FRONT;Meij2 behind = Meij2.BEHIND;Meij2 left = Meij2.LEFT;Meij2 right = Meij2.RIGHT;System.out.println(front.name);System.out.println(behind.name);System.out.println(left.name);System.out.println(right.name);}}
运行结果:
前
后
左
右

待续…

更多推荐

JAVASE基础模块四十四( 枚举 自己实现枚举类 enum关键字实现枚举)

本文发布于:2024-03-06 03:14:14,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1714203.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:模块   关键字   基础   JAVASE   四十四

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!