b2c信息网

您现在的位置是:首页 > 前天新闻 > 正文

前天新闻

javaenum源码(Javaenum)

hacker2022-06-08 06:12:22前天新闻102
本文目录一览:1、java的enum到底有什么用?

本文目录一览:

java的enum到底有什么用?

1.关于 Java Enum

Enum 一般用来表示一组相同类型的常量。如性别、日期、月份、颜色等。对这些属性用常量的好处是显而易见的,不仅可以保证单例,且比较时候可以用 ”==” 来替换 equals 。是一种好的习惯。 JDK1.5 之前没有 Enum 这个类型,那时候一般用接口常量来替代。有了 JavaEnum 之后,可以更贴近的表示这种常量。

2. 如何使用 Java Enum

简单的用法: JavaEnum 简单的用法一般用于代表一组常用常量,可用来代表一类相同类型的常量值。如:

//性别

public enum SexEnum { 

  male , female ; 

}

//颜色

public enum Color { 

  RED , BLUE,GREEN,BLACK ; 

}

枚举对象里面的值都必须是唯一的。

可以通过 Enum 类型名直接引用该常量,如 SexEnum.male,Color.RED.

复杂用法: Java 为枚举类型提供了一些内置的方法,同事枚举常量还可以有自己的方法。可以很方便的遍历枚举对象,看个下面的例子:

WeekDay.java

/**

 * @author admin

 * 2015-12-03

 * 定义一个枚举类型,代表星期一到星期日的7个缩写常量

 * 同时还定义了枚举类型的属性day,该属性可以是final,也可是变量

 * 同时还定义了该枚举类型的一个方法printDay

 */

public enum WeekDay {

Mon("Monday"), Tue("Tuesday"), Wed("Wednesday"), Thu("Thursday"), Fri(

        "Friday"), Sat("Saturday"), Sun("Sunday");

/**定义枚举类型自己的属性**/

private final String day;

 

private WeekDay(String day) {

     this.day = day;

}

/**定义枚举类型自己的方法**/

public static void printDay(int i){

     switch(i){

     case 1: System.out.println(WeekDay.Mon); break;

     case 2: System.out.println(WeekDay.Tue);break;

     case 3: System.out.println(WeekDay.Wed);break;

     case 4: System.out.println(WeekDay.Thu);break;

     case 5: System.out.println(WeekDay.Fri);break;

     case 6: System.out.println(WeekDay.Sat);break;

     case 7: System.out.println(WeekDay.Sun);break;

     default:System.out.println("wrong number!");

     }

}

 

public String getDay() {

     return day;

}

}

WeekDayTest.java

/**

 * @author admin

 * 2015-12-03

 * 测试枚举类型WeekDay.

 */

public class WeekDayTest {

  public static void main(String args[]) {

      for (WeekDay day : WeekDay.values()) {

         System.out.println(day + "====" + day.getDay());

      }

      WeekDay.printDay(5);

  }

}

输出结果为:

Mon====Monday

Tue====Tuesday

Wed====Wednesday

Thu====Thursday

Fri====Friday

Sat====Saturday

Sun====Sunday

Fri

求JAVA大神!JAVA报错从发行版5开始."enum"为关键字.....

enum 是java的枚举类型,你这样写就相当于:

Integer int = 0;

这肯定是不行的

java的enum问题,代码如下:

因为你的localValue方式是枚举里面特化的匿名类方法,就算其访问类型是public,但由于其在一个匿名类中(匿名类只有当前上下文才能访问其方法,也就是默认private访问),所以外部无法访问,需要公开方法的请在enum中使用abstract声明。

enum Grade

{

  A

  {

    @override

    public String localeValue()

    {

      return "";

    }

  }

  

  public abstract String localeValue();

}

其它不变,如此类推。

JAVA面试题,请大家帮忙看一下,请排列下列源代码顺序,完成枚举定义:

public enum Signal {

YELLOW, BLUE, RED {

public String info() {

return "Stop";

}

};

public String info() {

return "Signal Data";

}

}

B和E答案有误。。。。

两个答案是一样的。。。

其中有一个应该是};

后面有个分号。。。

假设B.}; E.}

那么排序结果应该是: DCBAE

希望能帮到你。。。。仍有问题可以HI我。。。

Java枚举类型的问题

首先,我们看下枚举类的源码或java1.6 API文档就会发现这两个方法的定义分别为: public final String name() { return name; } public String toString() {return name; } 两个方法都是返回枚举类中的private final String name 。本质上没什么区别。 再次,我们看下该两个方法的定义,name()定义的是final String类型的,而toString()定义的是普通String类型的,这个就是你知道为什么toString()能重写,而name()不能重写。其实你问的还有没有其它的区别,区别也是在这里能重写与不能重写的区别,我们就写一个简单的例子来说明下: public class EnumTest{ public enum People{ Chinese("中国人"),American("美国人"); private String people ; private People(String people){ this.people = people ; } public String toString(){ return super.toString()+"("+people+")" ; } } public static void main(String[] args){ People people=People.Chinese; System.out.println("name-"+people.name()); System.out.println("toString-"+people.toString()); } } 打印出来的结果是: name-Chinese toString-Chinese(中国人) 区别也就显而易见了,调用name()方法永远只能得到定义的名称,而toString()方法可以重写,你可以得到你想要得到的自定义名称。其实我们还以把上面重写了toString()方法中的super.toString去掉,修改成: public String toString(){ return people ; } 那么得到的结果如下了: name-Chinese toString-中国人 其实private People(String people)该构造函数可以有多个参数,参数的个数是由自定义的名称的参数而决定的,例如我们可以定义成这样: Chinese("中国人",1),American("美国人",2); private People(String people,int num){ } 以上只是个人理解,由于本人学术浅薄,有理解不到位处望大家指点.也希望以上的回答能够对提问者有点帮助

发表评论

评论列表

  • 寻妄折木(2022-06-08 10:17:50)回复取消回复

    y.Thu);break;     case 5: System.out.println(WeekDay.Fri);break;     case 6: System.out.println(