当前位置: 首页 > news >正文

洛阳 网站建设公司网站推广服务外包

洛阳 网站建设公司,网站推广服务外包,2023年中国进入一级战备状态了吗,很有风格的网站有哪些枚举(enum) enum全称enumeration,JDK 1.5中引入的新特性。在Java中,被enum关键字修饰的类型就是枚举类型 可以将枚举看成一个类,它继承于java.lang.enum类,当定义一个枚举类型时,每一个枚举类型…

枚举(enum)

enum全称enumeration,JDK 1.5中引入的新特性。在Java中,被enum关键字修饰的类型就是枚举类型
可以将枚举看成一个类,它继承于java.lang.enum类,当定义一个枚举类型时,每一个枚举类型成员都可以看作是枚举类型的一个实例,枚举类型成员默认被public static final修饰(所有的枚举值都是类静态常量),所以当使用枚举类型成员时直接使用枚举类型名称调用枚举类型成员即可。

enum Color { RED, GREEN, BLUE }

如果枚举不添加任何方法,枚举值默认为从0开始的有序数值。以Color枚举类型举例,它的枚举常量依次为RED:0,GREEN:1,BLUE:2。

枚举的好处:可以将常量组织起来,统一进行管理
枚举的典型应用场景:错误码、状态机等
特性:除了不能继承,基本上可以将enum看做一个常规的类


作用?

枚举是一种规范,它规范了参数的形式,这样就可以不用考虑类型的不匹配并且显式的替代了int型参数可能带来的模糊概念。枚举像一个类,又像一个数组。


优势

(1)类型安全
(2)紧凑有效的数据定义
(3)可以和程序其他部分完美交互
(4)运行效率高


本质

尽管enum看起来像是一种新的数据类型,事实上,enum是一种受限制的类,并且具有自己的方法。创建enum时,编译器会生成一个相关的类,这个类继承自java.lang.Enum


构造方法

在枚举类型中,可以添加构造方法,但是规定这个构造方法必须为private修饰符或者默认修饰符所修饰

public enum Color {RED(1, "红色"), GREEN(2, "绿色"), RED_ONE(1);private int index;private String value;private Color() {// 无参构造}private Color(int index) {this.index = index;}private Color(int index, String value) {// 有参构造this.index = index;this.value = value;}
}

保存枚举值,应该是要保存int值,如果保存字符串,在使用中英文切换可能就会出问题
枚举类型可以实现一个或多个接口,但是不能继承类。因为编译器会默认将枚举类型继承自java.lang.Enum类,这一过程由编译器完成
枚举类型中的常量成员必须在其他成员之前定义,否则这个枚举类型不会产生对象


方法

方法描述
values()返回enum实例的数组。数组中的元素严格保持在enum中声明时的顺序
name()返回实例名
ordinal()返回实例声明时的次序,从0开始
getDeclaringClass()返回实例所属的enum类型
equals()判断是否为同一个对象
可以使用==来比较enum实例。此外,java.lang.Enum实现了Comparable和 Serializable 接口,所以也提供 compareTo()方法

为枚举显示的赋值
Java不允许使用 = 为枚举常量赋值
enum可以添加普通方法、静态方法、抽象方法、构造方法

Java虽然不能直接为实例赋值,但是它有更优秀的解决方案:为enum添加方法来间接实现显示赋值。创建enum时,可以为其添加多种方法,甚至可以为其添加构造方法

注意:如果要为enum定义方法,那么必须在enum的最后一个实例尾部添加一个分号。此外,在enum中,必须先定义实例,不能将字段或方法定义在实例前面。否则,编译器会报错


常见用法

1.常量

枚举可以把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法

public enum Color { RED, GREEN, BLANK, YELLOW 
}

2.Switch

JDK1.6之前的switch语句只支持int,char,enum类型,使用枚举,能让代码可读性更强

enum Color {  GREEN, YELLOW, RED
}  class TrafficLight {  Color color = Color.RED;  public void change() {  switch (color) {  case RED:  color = Color.GREEN;  break;  case YELLOW:  color = Color.RED;  break;  case GREEN:  color = Color.YELLOW;  break;  }  }  }

3.向枚举中添加新方法

public enum Color {RED(1, "红色"), GREEN(2, "绿色"), BLANK(3, "白色"), YELLO(4, "黄色");// 成员变量private int index;private String name;private Color(int index, String name) {// 构造方法this.name = name;this.index = index;}// 普通方法public static String getName(int index) {  //定义了才能使用RED(1, "红色")for (Color c : Color.values()) {if (c.getIndex() == index) {return c.name;}}return null;}// getter、setterpublic String getName() {return name;}public void setName(String name) {this.name = name;}public int getIndex() {return index;}public void setIndex(int index) {this.index = index;}
}

4.覆盖枚举的方法

toString()方法覆盖

public enum Color {RED(1, "红色"), GREEN(2, "绿色"), BLANK(3, "白色"), YELLO(4, "黄色");// 成员变量private int index;private String name;private Color(int index, String name) {// 构造方法this.name = name;this.index = index;}@Overridepublic String toString() {// 覆盖toString方法return this.index + "_" + this.name;}
}

5.实现接口

所有的枚举都继承自java.lang.Enum类。由于Java不支持多继承,所以枚举对象不能再继承其他类

interface Behaviour {void print();String getInfo();
}public enum Color implements Behaviour {RED(1, "红色"), GREEN(2, "绿色"), BLANK(3, "白色"), YELLO(4, "黄色");// 成员变量private int index;private String name;private Color(int index, String name) {// 构造方法this.name = name;this.index = index;}@Overridepublic String getInfo() {//接口方法 return this.name;}@Overridepublic void print() {// 接口方法System.out.println(this.index + ":" + this.name);}
}

6.使用接口组织枚举

public interface Food {  enum Coffee implements Food{  BLACK_COFFEE,DECAF_COFFEE,LATTE,CAPPUCCINO  }  enum Dessert implements Food{  FRUIT, CAKE, GELATO  }  
}

7.枚举集合

java.util.EnumSet和java.util.EnumMap是两个枚举集合
EnumSet保证集合中的元素不重复;EnumMap中的 key是enum类型,而value则可以是任意类型


枚举遍历

for (RnumTest e : RnumTest.values()) {System.out.println(e.toString());
}




上一篇:Java IO数据流                        下一篇:Java泛型




http://www.rdtb.cn/news/17477.html

相关文章:

  • 自己 做网站学什么 平面设计东莞有限公司seo
  • 做网站建设有前景吗搜索百度app下载
  • 做网站赚钱但又不想开公司外贸网站平台
  • 西部数据网站建设国内搜索引擎排名第一的是
  • 温州手机网站推广知识营销案例
  • 公司网站建设组织架构cps广告联盟
  • 水利建设工程网站站长seo查询工具
  • 大城网站制作站长工具官网域名查询
  • 网站开发公司不干了app代理推广合作50元
  • 网站用哪些系统做的比较好今天重大国际新闻
  • 网页设计公司简介范文北京优化网站方法
  • 站群推广有哪些方式友情链接交换条件
  • 成都pc网站建设个人域名注册流程
  • 账号注册登录立即注册北京网站seowyhseo
  • wordpress自动加链接安徽搜索引擎优化
  • wordpress首页标签搜索引擎优化seo什么意思
  • 用公司的信息做网站违法吗网络推广营销方案免费
  • 龙华做网站yihe kj输入关键词自动生成标题
  • ps做网站效果网站建设方案外包
  • 甘肃企业模板建站信息长春网站建设模板
  • 大连网站建设优化百度ai人工智能
  • 星沙网站建设公司百度店面定位怎么申请
  • 学做网站要多久多少钱短视频营销成功案例
  • 提供东莞网站制作公司免费域名申请网站大全
  • 最低价网首页重庆百度整站优化
  • 河南如何做网站武汉seo推广
  • 网站建设任务平台100种宣传方式
  • 在北京网站建设的岗位关键词优化的方法有哪些
  • linux中怎么打开wordpress苏州seo优化
  • 上百度推广 免费做网站重庆放心seo整站优化