java枚举类型的用法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java枚举类型的用法相关的知识,希望对你有一定的参考价值。

书上有个程序import java.util.Arrays;enum sea s2,s1,s3;public class e public static void main(String[] args) sea.x = sea.s1; System.out.println("S1"); 你看是不书上错了??x没有声明为静态的???

就是那样用的,不要问为什么。甲鱼臀部追问

public static sea x;提示要加这句

追答

那你不加,不就是没定义变量x,你怎么赋值呢,定义x是必须的,至于为什么是static。你可以把它理解成类,在外类中如何通过类名.属性的方法获取该属性呢?答案是该属性必须定义了,且属于类成员变量~~懂哇

参考技术A public class e
enum sea
s2,s1,s3;;
public static sea x;//声明x

public static void main(String[] args)
sea.x = sea.s1;
System.out.println("S1");


这个是正确写法,最终控制台输出为 S1
参考技术B 首先是没有错的,另外这种问题最简单的方式就是自己去敲一遍你就明白了,具体问为什么,没有原因变成语言就是这么规定的,就好比规定你一个方法必须有返回类型和有名字一样追问

public static sea x;提示要加这句

java枚举

参考技术A 这个枚举里面写了如下方法public
abstract
TrafficLamp
nextLamp();
以上为一个抽象方法,需要实现的,所以下面的RED有方法体(匿名类的概念),是为了实现抽象方法。
RED(30)
public
TrafficLamp
nextLamp()
return
GREEN;

而30是传入int参数,因为下面写了有参的构造方法:
private
int
time;
private
TrafficLamp(int
time)this.time
=
time;
time=30这是RED的一个属性。
你可以把枚举看做一个类,而它的每个实例都是该类的对象,而且此对象是不可变的。

以上是关于java枚举类型的用法的主要内容,如果未能解决你的问题,请参考以下文章

java枚举类型

java枚举类型

Java 枚举类型用法

java中的enum

Java枚举类型的用法

java枚举类型中分号的用法