java枚举实现接口(java枚举的用法)

网友投稿 275 2022-12-30


本篇文章给大家谈谈java枚举实现接口,以及java枚举的用法对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。 今天给各位分享java枚举实现接口的知识,其中也会对java枚举的用法进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

java枚举类型enum用法

用法如下:

用法一:常量      在JDK1.5 之前,我们定义常量都是: public static fianl.... 。现在好了,有了枚举,可以把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法

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

用法三:向枚举中添加新方法   如果打算自定义自己的方法,那么必须在enum实例序列的最后添加一个分号。而且 Java 要求必须先定义 enum 实例。

用法四:覆盖枚举的方法   所有的枚举都继承自java.lang.Enum类。由于Java 不支持多继承,所以枚举对象不能再继承其他类。 枚举类型都继承Enum

package com.it.exenum;

用法五:实现接口    public interface Food {
enum Coffee implements Food{
BLACK_COFFEE,DECAF_COFFEE,LATTE,CAPPUCCINO

用法六:使用接口组织枚举

用法七:关于枚举集合的使用

枚举能继承类或接口吗

1 枚举的定义 :一个特殊的java类,对象的某个属性的值不能是任意的,必须为固定的一组取值其中的某一个
接口的定义:定义对象的扩展功能,是在继承之外还需这个对象具备的一些功能
2 上面的定义中说明了枚举是一个特俗的java类,既然是一个java类,那么就可以继承接口。
3 下面的用java代码来展示枚举继承接口的方式 :
//定义一个枚举:
public enum Suit { CLUBS, DIAMONDS, HEARTS, SPADES }
public interfacel SuitImp{}//接口
//枚举实现接口的代码
public enum Suit implements SuitImp()

Java语言中的枚举类型如何使用?

Java语言中的枚举类型的使用方法如下:

用法一:常量;

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

用法二:switch;

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

用法三:向枚举中添加新方法;

public enum Color {
        RED("红色", 1), GREEN("绿色", 2), BLANK("白色", 3), YELLO("黄色", 4);
        // 成员变量
        private String name;
        private int index;
        // 构造方法
        private Color(String name, int index) {
            this.name = name;
            this.index = index;
        }
        // 普通方法
        public static String getName(int index) {
            for (Color c : Color.values()) {
                if (c.getIndex() == index) {
                    return c.name;
                }
            }
            return null;
        }
        // get set 方法
        public 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;
        }
    }

用法四:覆盖枚举的方法;

public class Test {
    public enum Color {
        RED("红色", 1), GREEN("绿色", 2), BLANK("白色", 3), YELLO("黄色", 4);
        // 成员变量
        private String name;
        private int index;
        // 构造方法
        private Color(String name, int index) {
            this.name = name;
            this.index = index;
        }
        // 覆盖方法
        @Override
        public String toString() {
            return this.index + "_" + this.name;
        }
    }
    public static void main(String[] args) {
        System.out.println(Color.RED.toString());
    }
}

用法五:实现接口;

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

用法六:使用接口组织枚举。

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

以上就是Java语言中枚举类型的基本使用方法。

怎样在Java中使用嵌套枚举类型

Java语言中的枚举类型的使用方法如下:
用法一:常量;
public enum Color { RED, GREEN, BLANK, YELLOW }
用法二:switch;
public class Test { public enum Color { RED("红色", 1), GREEN("绿色", 2), BLANK("白色", 3), YELLO("黄色", 4); // 成员变量 private String name; private int index; // 构造方法 private Color(String name, int index) { this.name = name; this.index = index; } // 覆盖方法 @Override public String toString() { return this.index + "_" + this.name; } } public static void main(String[] args) { System.out.println(Color.RED.toString()); }}
用法五:实现接口;
public interface Behaviour { void print(); String getInfo(); } public enum Color implements Behaviour { RED("红色", 1), GREEN("绿色", 2), BLANK("白色", 3), YELLO("黄色", 4); // 成员变量 private String name; private int index; // 构造方法 private Color(String name, int index) { this.name = name; this.index = index; } // 接口方法 @Override public String getInfo() { return this.name; } // 接口方法 @Override public void print() { System.out.println(this.index + ":" + this.name); } }
用法六:使用接口组织枚举。
public interface Food { enum Coffee implements Food { BLACK_COFFEE, DECAF_COFFEE, LATTE, CAPPUCCINO } enum Dessert implements Food { FRUIT, CAKE, GELATO }}
以上就是Java语言中枚举类型的基本使用方法。

Java:这里的枚举常量是如何定义的呢?

枚举(从JDK1.5开始有)
用于代表”实例已经固定“的类,而且定义时就必须在【第一行】创建初始化并列出来。
语法格式:
修饰符 enum 枚举名{
//立即在第一行列出该枚举的所有实例。
}
—— 修饰符 可以是 public | 省略 | abstract | final。 abstract与final必须出现其中一个。
—— 枚举的构造器只能用private修饰。
—— 枚举类的实例必须在第一行显式的列出。
所有的枚举都有一个values()方法,返回枚举实例

switch(byte|short|char|int|String|枚举)
●有了枚举之后,它的实例已经创建出来了,只需要用它们就行了。
●枚举可以有Field,方法,构造器(只能是private修饰),初始化块,内部类。
列出枚举值,并不是简单的定义几个枚举值的变量名。
而是调用枚举类的构造器来创建相应的实例。

定义枚举的方法时要非常小心,
●包含抽象方法的枚举类
●枚举可以实现接口。
A。实现接口,并直接实现所有的抽象方法。
此时枚举类不再是抽象枚举了。
B。实现接口,但并不直接实现抽象方法。
此时枚举类就只能是抽象枚举类。

java中的枚举到底有什么作用?

枚举是一种规范它规范java枚举实现接口了参数java枚举实现接口的形式java枚举实现接口,这样就可以不用考虑类型的不匹配并且显式的替代了int型参数可能带来的模糊概念 枚举像一个类,又像一个数组。
Enum作为Sun全新引进的一个关键字,看起来很象是特殊的class, 它也可以有自己的变量,可以定义自己的方法,可以实现一个或者多个接口。 当java枚举实现接口我们在声明一个enum类型时,我们应该注意到enum类型有如下的一些特征。
1.它不能有public的构造函数,这样做可以保证客户代码没有办法新建一个enum的实例。
2.所有枚举值都是public , static , final的。注意这一点只是针对于枚举值,我们可以和在普通类里面定义 变量一样定义其它任何类型的非枚举变量,这些变量可以用任何你想用的修饰符。
3.Enum默认实现了java.lang.Comparable接口。
4.Enum覆载了了toString方法,因此我们如果调用Color.Blue.toString()默认返回字符串”Blue”.
5.Enum提供了一个valueOf方法,这个方法和toString方法是相对应的。调用valueOf(“Blue”)将返回Color.Blue.因此我们在自己重写toString方法的时候就要注意到这一点,一把来说应该相对应地重写valueOf方法。
6.Enum还提供了values方法,这个方法使你能够方便的遍历所有的枚举值。
7.Enum还有一个oridinal的方法,这个方法返回枚举值在枚举类种的顺序,这个顺序根据枚举值声明的顺序而定,这里Color.Red.ordinal()返回0。
了解了这些基本特性,我们来看看如何使用它们。
1.遍历所有有枚举值. 知道了有values方法,我们可以轻车熟路地用ForEach循环来遍历了枚举值了。
for (Color c: Color.values())
System.out.println(“find value:” + c);
2.在enum中定义方法和变量,比如我们可以为Color增加一个方法随机返回一个颜色。
public enum Color {
Red,
Green,
Blue;
private static int number = Color.values().length ;
public static Color getRandomColor(){
long random = System.currentTimeMillis() % number;
switch ((int) random){
case 0:
return Color.Red;
case 1:
return Color.Green;
case 2:
return Color.Blue;
default : return Color.Red;
}
}
}
可以看出这在枚举类型里定义变量和方法和在普通类里面定义方法和变量没有什么区别。唯一要注意的只是变量和方法定义必须放在所有枚举值定义的后面,否则编译器会给出一个错误。
3.覆载(Override)toString, valueOf方法
前面我们已经知道enum提供了toString,valueOf等方法,很多时候我们都需要覆载默认的toString方法,那么对于enum我们怎么做呢。其实这和覆载一个普通class的toString方法没有什么区别。
….
public String toString(){
switch (this){
case Red:
return "Color.Red";
case Green:
return "Color.Green";
case Blue:
return "Color.Blue";
default:
return "Unknow Color";
}
}
….
这时我们可以看到,此时再用前面的遍历代码打印出来的是
Color.Red
Color.Green
Color.Blue
而不是
Red
Green
Blue.
可以看到toString确实是被覆载了。一般来说在覆载toString的时候我们同时也应该覆载valueOf方法,以保持它们相互的一致性。
4.使用构造函数
虽然enum不可以有public的构造函数,但是我们还是可以定义private的构造函数,在enum内部使用。还是用Color这个例子。
public enum Color {
Red("This is Red"),
Green("This is Green"),
Blue("This is Blue");
private String desc;
Color(String desc){
this.desc = desc;
}
public String getDesc(){
return this.desc;
}
}
这里我们为每一个颜色提供了一个说明信息, 然后定义了一个构造函数接受这个说明信息。
要注意这里构造函数不能为public或者protected, 从而保证构造函数只能在内部使用,客户代码不能new一个枚举值的实例出来。这也是完全符合情理的,因为我们知道枚举值是public static final的常量而已。
5.实现特定的接口
我们已经知道enum可以定义变量和方法,它要实现一个接口也和普通class实现一个接口一样,这里就不作示例了。
6.定义枚举值自己的方法。
前面我们看到可以为enum定义一些方法,其实我们甚至可以为每一个枚举值定义方法。这样,我们前面覆载 toString的例子可以被改写成这样。
public enum Color {
Red {
public String toString(){
return "Color.Red";
}
},
Green {
public String toString(){
return "Color.Green";
}
},
Blue{
public String toString(){
return "Color.Blue";
}
};
}
从逻辑上来说这样比原先提供一个“全局“的toString方法要清晰一些。
总的来说,enum作为一个全新定义的类型,是希望能够帮助程序员写出的代码更加简单易懂,个
人觉得一般也不需要过多的使用enum的一些高级特性,否则就和简单易懂的初衷想违背了。 关于java枚举实现接口和java枚举的用法的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。 java枚举实现接口的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java枚举的用法、java枚举实现接口的信息别忘了在本站进行查找喔。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Spring Boot 如何自定义返回错误码错误信息
下一篇:外部系统接口设计方案(系统内外接口)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~