Java 罗列(Enums)解析:进步代码可读性与易维护性

打印 上一主题 下一主题

主题 857|帖子 857|积分 2571

接口

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

接口是一个完全抽象的类,用于将具有空方法体的相关方法分组:
  1. // 接口
  2. interface Animal {
  3.   public void animalSound(); // 接口方法(没有具体实现体)
  4.   public void run(); // 接口方法(没有具体实现体)
  5. }
复制代码
实现接口

要访问接口方法,必须利用 implements 关键字(而不是 extends)由另一个类“实现”(有点雷同于继承)。接口方法的详细实现体由“实现”类提供:
  1. // 接口
  2. interface Animal {
  3.   public void animalSound(); // 接口方法(没有具体实现体)
  4.   public void sleep(); // 接口方法(没有具体实现体)
  5. }
  6. // Pig “实现” Animal 接口
  7. class Pig implements Animal {
  8.   public void animalSound() {
  9.     // animalSound()的具体实现体在这里提供
  10.     System.out.println("The pig says: wee wee");
  11.   }
  12.   public void sleep() {
  13.     // sleep()的具体实现体在这里提供
  14.     System.out.println("Zzz");
  15.   }
  16. }
  17. class Main {
  18.   public static void main(String[] args) {
  19.     Pig myPig = new Pig(); // 创建一个 Pig 对象
  20.     myPig.animalSound();
  21.     myPig.sleep();
  22.   }
  23. }
复制代码
接口注意事项


  • 与抽象类一样,接口不能用于创建对象(在上面的示例中,无法创建“Animal”对象)
  • 接口方法没有详细的实现体 - 实现体由“实现”类提供
  • 在实现接口时,必须重写其全部方法
  • 接口方法默认为抽象和公共的
  • 接口属性默认为公共、静态和最终的
  • 接口不能包含构造函数(由于它不能用于创建对象)
何时利用接口?


  • 为了实现安全性 - 隐藏对象的某些细节,仅表现其告急细节(接口)。
  • 为了实现多重继承 - Java 不支持“多重继承”(一个类只能继承自一个超类)。但是,它可以通过接口实现,由于类可以实现多个接口。注意:要实现多个接口,请用逗号分隔它们(见下面的示例)。
多个接口

要实现多个接口,请用逗号分隔它们:
  1. interface FirstInterface {
  2.   public void myMethod(); // 接口方法
  3. }
  4. interface SecondInterface {
  5.   public void myOtherMethod(); // 接口方法
  6. }
  7. class DemoClass implements FirstInterface, SecondInterface {
  8.   public void myMethod() {
  9.     System.out.println("Some text..");
  10.   }
  11.   public void myOtherMethod() {
  12.     System.out.println("Some other text...");
  13.   }
  14. }
  15. class Main {
  16.   public static void main(String[] args) {
  17.     DemoClass myObj = new DemoClass();
  18.     myObj.myMethod();
  19.     myObj.myOtherMethod();
  20.   }
  21. }
复制代码
接口的优势


  • 接口可以促进代码的重用。
  • 接口可以进步代码的可读性和可维护性。
  • 接口可以实现解耦,使代码更机动。
总结

接口是 Java 中告急的概念,它们可以资助您编写更安全、更可重用、更机动和更易于维护的代码。
罗列(Enums)

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

要创建一个罗列,请利用 enum 关键字(而不是 class 或 interface),并用逗号分隔常量。注意,它们应该利用大写字母:
  1. enum Level {
  2.   LOW,
  3.   MEDIUM,
  4.   HIGH
  5. }
复制代码
您可以利用点语法访问罗列常量:
  1. Level myVar = Level.MEDIUM;
复制代码
Enum 是“enumerations”的缩写,意思是“详细罗列”。
在类内部定义罗列

您还可以在类内部定义罗列:
  1. public class Main {
  2.   enum Level {
  3.     LOW,
  4.     MEDIUM,
  5.     HIGH
  6.   }
  7.   public static void main(String[] args) {
  8.     Level myVar = Level.MEDIUM;
  9.     System.out.println(myVar);
  10.   }
  11. }
复制代码
输出将是:
  1. MEDIUM
复制代码
在 Switch 语句中利用罗列

罗列常用于 switch 语句中,以检查相应的值:
  1. enum Level {
  2.   LOW,
  3.   MEDIUM,
  4.   HIGH
  5. }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;    }  }}
复制代码
输出将是:
  1. Medium level
复制代码
遍历罗列

罗列类型具有 values() 方法,该方法返回全部罗列常量的数组。当您想要遍历罗列的常量时,此方法非常有用:
  1. for (Level myVar : Level.values()) {
  2.   System.out.println(myVar);
  3. }
复制代码
输出将是:
  1. LOW
  2. MEDIUM
  3. HIGH
复制代码
罗列与类的区别

罗列可以像类一样具有属性和方法。唯一的区别是罗列常量是 public、static 和 final(不可更改的 - 不能被覆盖)的。
罗列不能用于创建对象,也不能扩展其他类(但可以实现接口)。
何时以及为何利用罗列?

当您知道值不会更改时
,比如月份天数、星期几、颜色、扑克牌等,可以利用罗列。
利用罗列可以使代码更易读、更易维护,并克制利用 final 变量和 switch 语句中的字符串。
罗列的优势:

  • 可读性强
  • 易于维护
  • 安全性高
  • 代码轻便
总结:
罗列是 Java 中一种强盛的工具,可以用来表示一组常量。它们易于利用和理解,并且可以使您的代码更易读、更易维护。
最后

为了方便其他装备和平台的小伙伴观看往期文章:
微信公众号搜索:Let us Coding,关注后即可获取最新文章推送
看完假如觉得有资助,欢迎 点赞、收藏、关注

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

冬雨财经

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表