当前位置:才华咖 > 互联网计算机 > 计算机 > java语言 > 讲述java中enum的用法
手机版

讲述java中enum的用法

来源:才华咖 阅读:3.23W 次

本文实例讲述了java中enum的用法。分享给大家供大家参考。具体分析如下:

讲述java中enum的用法

  1. 基本用法

复制代码 代码如下:enum Day {

SUNDAY, MONDAY, TUESDAY, WENDSDAY, THURSDAY, FRIDAY, SATURDAY;

}

枚举是常量,所以应该用大写。

  2. 枚举是对象

枚举隐含地继承了,所以它具有的.属性和方法。遍历枚举:

复制代码 代码如下:public class Main {

public static void main(String[] args) {

for(Day day:es()) {

tln(day);

}

}

}

  3. 枚举可以带字段和方法,以下示例来自官方The Java Tutorials

复制代码 代码如下:public enum EnumDemo {

AOBJECT("field one", "field two");

private String field1;

private String field2;

EnumDemo(String val1, String val2){

d1 = val1;

d2 = val2;

}

public void printFields(){

tln(d1);

tln(d2);

}

public static void main(String[] args) {

tFields();

}

}

以下现实中的示例来自官方的Java Tutorial:

复制代码 代码如下:public enum Planet {

MERCURY (3.303e+23, 2.4397e6),

VENUS (4.869e+24, 6.0518e6),

EARTH (5.976e+24, 6.37814e6),

MARS (6.421e+23, 3.3972e6),

JUPITER (1.9e+27, 7.1492e7),

SATURN (5.688e+26, 6.0268e7),

URANUS (8.686e+25, 2.5559e7),

NEPTUNE (1.024e+26, 2.4746e7);

private final double mass; // in kilograms

private final double radius; // in meters

Planet(double mass, double radius) {

= mass;

us = radius;

}

private double mass() { return mass; }

private double radius() { return radius; }

// universal gravitational constant (m3 kg-1 s-2)

public static final double G = 6.67300E-11;

double surfaceGravity() {

return G * mass / (radius * radius);

}

double surfaceWeight(double otherMass) {

return otherMass * surfaceGravity();

}

public static void main(String[] args) {

Double earthWeight = 120;

for(Planet p: es()){

tln(aceGravity());

tln(aceWeight(earthWeight/aceGravity()));

}

}

}

  4. 枚举是singleton,可以用枚举来构建一个Singleton

复制代码 代码如下:public enum Singleton {

INSTANCE(new String[]{"arg1", "arg2"});

String[] myArgs;

Singleton(String[] args){

gs = args;

}

public static Singleton getInstance(){

return INSTANCE;

}

public static void main(String[] args) {

for(String arg : gs)

tln(arg);

}

}

本文链接:https://www.caihuaka.com/jsjzs/java/79kw0y.html

Copyright © 2024. 才华咖 All right reserved. 浙ICP备20120231号-3

文字美图素材,版权属于原作者。部分文章内容由网友提供推送时因种种原因未能与原作者联系上,若涉及版权问题,敬请原作者联系我们,立即处理。