java枚举详解,JAVA中的枚举

  java枚举详解,JAVA中的枚举

  如何解决写爬虫IP受阻的问题?立即使用。

  java枚举类介绍:(java学习视频推荐:java视频教程)

  一、什么时候使用枚举类?

  有时一个类的对象是有限的和固定的。在这种情况下,我们使用枚举类更加方便。

  第二,为什么不用静态常量代替枚举类?

  public static final int SEASON _ SPRING=1;

  public static final int SEASON _ SUMMER=2;

  public static final int SEASON _ FALL=3;

  public static final int SEASON _ WINTER=4;枚举更加直观和类型安全。使用常数有以下缺点:

  1.该类型不安全。如果需要将季节参数传入一个方法,如果使用了常量,则该参数为int类型,开发者可以传入任意类型的int类型值,但如果是枚举类型,则只能传入枚举类中包含的对象。

  2.没有命名空间。开发者命名的时候要以SEASON_开头,这样当另一个开发者看这段代码的时候,就知道这四个常数分别代表季节。

  三。枚举类简介

  让我们看一个简单的枚举类。

  包枚举情况;公共枚举SeasonEnum {

  春天,夏天,秋天,冬天;

  }enum与类和接口具有相同的状态。默认情况下,由Enum定义的enum继承java.lang.Enum,而不是Object类。枚举可以实现一个或多个接口。枚举的所有实例都必须显示在第一行,不使用new关键字或显式调用构造函数。自动添加公共静态最终装饰。默认情况下,由enum定义的非抽象枚举类用final修饰,并且不能被继承。枚举的构造函数只能是私有的。

  四。枚举类简介

  属性和方法也可以在枚举中定义,但是它们是静态的和非静态的。

  包枚举情况;公共枚举SeasonEnum {

  春(春),夏(夏),秋(秋),冬(冬);

  私有最终字符串名称;

  私有SeasonEnum(字符串名)

  { this.name=name

  } public String getName(){ return name;

  }

  }其实第一行写枚举类实例的时候,默认调用构造函数,所以这里需要传入参数。因为没有显式声明无参数构造函数,所以只能调用带参数的构造函数。

  构造函数需要定义为私有的,这样这样的对象就不能在别处声明。枚举通常应该设计成不可变类,它的字段不应该改变,这样会更安全,也更简洁。所以我们用私人决赛来装饰场地。

  动词(verb的缩写)枚举类实现接口

  枚举可以实现一个或多个接口。就像普通的类一样,接口中定义的所有方法都需要在实现接口时实现。如果没有完全实现,那么这个枚举类就是抽象的,但是不需要用abstract显式修饰。默认会添加系统化。

  包枚举情况;

  公共枚举操作{

  加号{

  @覆盖

  公共双eval(双x,双y) {

  返回x y;

  }

  },

  减去{

  @覆盖

  公共双eval(双x,双y) {

  返回x-y;

  }

  },

  次数{

  @覆盖

  公共双eval(双x,双y) {

  返回x * y;

  }

  },

  划分{

  @覆盖

  公共双eval(双x,双y) {

  返回x/y;

  }

  };

  /**

  *抽象方法,由不同的枚举值提供不同的实现。

  * @param x

  * @param y

  * @返回

  */

  公共抽象double eval(double x,double y);

  公共静态void main(String[] args) {

  System.out.println(操作。PLUS.eval(10,2));

  System.out.println(操作。MINUS.eval(10,2));

  System.out.println(操作。times eval(10,2));

  System.out.println(操作。DIVIDE.eval(10,2));

  }

  }Operatio类实际上是抽象的,不能创建枚举值。因此,当枚举值在这里声明时,所有抽象方法都被实现。这其实是匿名内部类的实现,花括号是一个类体。我们可以看看编译好的文件。

  共生变成了五个类文件,证明了Plus,Minor,Times,Divide是匿名内部类的运算实例。

  6.switch语句中的表达式可以是枚举值。

  Java5增加了enum关键字和扩展开关。

  包枚举情况;

  公开课SeasonTest {

  公共无效法官

  {

  开关

  {

  表壳弹簧:

  system . out . println(‘春天适合郊游。’);

  打破;

  案例夏季:

  System.out.println(我夏天要去游泳。);

  打破;

  案例下降:

  system . out . println(‘秋天一定要去旅游。’);

  打破;

  冬季案例:

  System.out.println(冬天下雪就好了。);

  打破;

  }

  }

  公共静态void main(String[] args) {

  SeasonEnum s=SeasonEnum。春天;

  SeasonTest test=new SeasonTest();

  测试法官;

  }

  }枚举值直接写在}case表达式中,没有添加枚举类作为限制。

  推荐:java基础教程以上是java枚举类的详细内容(附代码)。请多关注我们的其他相关文章!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: