写点什么

Java 枚举(Enums)解析:提高代码可读性与易维护性

作者:小万哥
  • 2024-03-06
    广东
  • 本文字数:2093 字

    阅读完需:约 7 分钟

Java 枚举(Enums)解析:提高代码可读性与易维护性

接口

在 Java 中,实现抽象的另一种方式是使用接口。

接口定义

接口是一个完全抽象的类,用于将具有空方法体的相关方法分组:


// 接口interface Animal {  public void animalSound(); // 接口方法(没有具体实现体)  public void run(); // 接口方法(没有具体实现体)}
复制代码

实现接口

要访问接口方法,必须使用 implements 关键字(而不是 extends)由另一个类“实现”(有点类似于继承)。接口方法的具体实现体由“实现”类提供:


// 接口interface Animal {  public void animalSound(); // 接口方法(没有具体实现体)  public void sleep(); // 接口方法(没有具体实现体)}
// Pig “实现” Animal 接口class Pig implements Animal { public void animalSound() { // animalSound()的具体实现体在这里提供 System.out.println("The pig says: wee wee"); } public void sleep() { // sleep()的具体实现体在这里提供 System.out.println("Zzz"); }}
class Main { public static void main(String[] args) { Pig myPig = new Pig(); // 创建一个 Pig 对象 myPig.animalSound(); myPig.sleep(); }}
复制代码

接口注意事项

  • 与抽象类一样,接口不能用于创建对象(在上面的示例中,无法创建“Animal”对象)

  • 接口方法没有具体的实现体 - 实现体由“实现”类提供

  • 在实现接口时,必须重写其所有方法

  • 接口方法默认为抽象和公共的

  • 接口属性默认为公共、静态和最终的

  • 接口不能包含构造函数(因为它不能用于创建对象)

何时使用接口?

  1. 为了实现安全性 - 隐藏对象的某些细节,仅显示其重要细节(接口)。

  2. 为了实现多重继承 - Java 不支持“多重继承”(一个类只能继承自一个超类)。但是,它可以通过接口实现,因为类可以实现多个接口。注意:要实现多个接口,请用逗号分隔它们(见下面的示例)。

多个接口

要实现多个接口,请用逗号分隔它们:


interface FirstInterface {  public void myMethod(); // 接口方法}
interface SecondInterface { public void myOtherMethod(); // 接口方法}
class DemoClass implements FirstInterface, SecondInterface { public void myMethod() { System.out.println("Some text.."); } public void myOtherMethod() { System.out.println("Some other text..."); }}
class Main { public static void main(String[] args) { DemoClass myObj = new DemoClass(); myObj.myMethod(); myObj.myOtherMethod(); }}
复制代码

接口的优势

  • 接口可以促进代码的重用。

  • 接口可以提高代码的可读性和可维护性。

  • 接口可以实现解耦,使代码更灵活。

总结

接口是 Java 中重要的概念,它们可以帮助您编写更安全、更可重用、更灵活和更易于维护的代码。

枚举(Enums)

枚举是一个特殊的“类”,表示一组常量(不可更改的变量,如 final 变量)。

创建枚举

要创建一个枚举,请使用 enum 关键字(而不是 classinterface),并用逗号分隔常量。注意,它们应该使用大写字母:


enum Level {  LOW,  MEDIUM,  HIGH}
复制代码


您可以使用点语法访问枚举常量:


Level myVar = Level.MEDIUM;
复制代码


Enum 是“enumerations”的缩写,意思是“具体列举”。

在类内部定义枚举

您还可以在类内部定义枚举:


public class Main {  enum Level {    LOW,    MEDIUM,    HIGH  }
public static void main(String[] args) { Level myVar = Level.MEDIUM; System.out.println(myVar); }}
复制代码


输出将是:


MEDIUM
复制代码

在 Switch 语句中使用枚举

枚举常用于 switch 语句中,以检查相应的值:


enum Level {  LOW,  MEDIUM,  HIGH}
public class Main { public static void main(String[] args) { Level myVar = Level.MEDIUM;
switch(myVar) { case LOW: System.out.println("Low level"); break; case MEDIUM: System.out.println("Medium level"); break; case HIGH: System.out.println("High level"); break; } }}
复制代码


输出将是:


Medium level
复制代码

遍历枚举

枚举类型具有 values() 方法,该方法返回所有枚举常量的数组。当您想要遍历枚举的常量时,此方法非常有用:


for (Level myVar : Level.values()) {  System.out.println(myVar);}
复制代码


输出将是:


LOWMEDIUMHIGH
复制代码

枚举与类的区别

枚举可以像类一样具有属性和方法。唯一的区别是枚举常量是 publicstaticfinal(不可更改的 - 不能被覆盖)的。


枚举不能用于创建对象,也不能扩展其他类(但可以实现接口)。

何时以及为何使用枚举?

当您知道值不会更改时


,比如月份天数、星期几、颜色、扑克牌等,可以使用枚举。


使用枚举可以使代码更易读、更易维护,并避免使用 final 变量和 switch 语句中的字符串。


枚举的优势:


  • 可读性强

  • 易于维护

  • 安全性高

  • 代码简洁


总结:


枚举是 Java 中一种强大的工具,可以用来表示一组常量。它们易于使用和理解,并且可以使您的代码更易读、更易维护。

最后

为了方便其他设备和平台的小伙伴观看往期文章:


微信公众号搜索:Let us Coding,关注后即可获取最新文章推送


看完如果觉得有帮助,欢迎 点赞、收藏、关注

发布于: 刚刚阅读数: 4
用户头像

小万哥

关注

代码如人生 2023-02-09 加入

编程爱好者

评论

发布
暂无评论
Java 枚举(Enums)解析:提高代码可读性与易维护性_Java_小万哥_InfoQ写作社区