接口和枚举

接口

Java中的 interface (接?)是?种表?抽象数据类型的好?法。接?中是?连串的?法标识,但是没有?法体 (定义)。如果想要写?个类来实现接?,我们必须给类加上 implements 关键字,并且在类内部提供接?中? 法的定义。所以接?+实现类也是Java中定义抽象数据类型的?种?法。

在Java代码中,接?被?的很?泛(但也不是所有类都是接?的实现),这?列出来了?个使?接?的好处:

  • 接?对于编译器和读者来说都是重要的?档:接?不仅会帮助编译器发现ADT实现过程中的错误,它也会帮助 读者更容易/快速的理解ADT的操作——因为接?将ADT抽象到了更?的层次,?户不需要关?具体实现的各 种?案。
  • 允许进?性能上的权衡:接?使得ADT可以有不同的实现?案,?这些实现?案可能在不同环境下的性能或其 他资源特性有很?差别。使?者可以根据??的环境/需求选择合适的实现?案。但是,在我们选择特定的? 案后,我们依旧要保持代码的表?独?性,即当ADT发?(内部)改变或更换实现?案后代码依然能正常运?。
  • 通过未决定的规格说明给实现者以定义?法的?由:例如,当把?个有限集合转化为?个列表的时候,有? 些实现可能是使?较慢的?法,但是它们确保这些元素在列表中是排好序的;?其他的实现可能是不管这些 元素转换后在列表中的排序,但是它们的速度更快。
  • ?个类具有多种“视?”:在Java中,?个类可以同时实现多个接?,例如,?个能够显?列表的窗?部件就可 能是?个同时实现了窗?和列表这两个接?的类。这反映的是多种ADT特性同时存在的特殊情况。
  • 允许不同信任度的实现:另?个多次实现?个接?的原因在于,你可以写?个简单但是?常可靠的实现,也 可以写?个很“炫”但是bug存在的?率(稳定性)??些的实现。?使?者可以根据实际情况选择相应的?案。

枚举

有时候?个ADT的值域是?个很?的有限集,例如:

?年中的?份: January, February, …

?周中的天数: Monday, Tuesday, …

?向: north, south, east, west

画线时的line caps : butt, round, square

这样的类型往往会被?来组成更复杂的类型(例如 DateTime 或者 Latitude ),或者作为?个改某个?法的? 为的参数使?(例如 drawline )。当值域很?且有限时,将所有的值定义为被命名的常量是有意义的,这被称为枚举(enumeration)。

原文地址:https://www.cnblogs.com/L160300101/p/9191423.html

时间: 2024-10-08 03:30:09

接口和枚举的相关文章

idea创建类,接口,枚举等如何设置注释

进入设置: File -> Settings   依次选择: Editor -> File and Code Templates -> Files -> Class (根据需要选择Interface 和 Enum) 注释模板: /*** @program: ${PROJECT_NAME}* @description: ${description}* @author: 你的ID* @create: ${YEAR}-${MONTH}-${DAY} ${HOUR}:${MINUTE}**

类、枚举与接口

接口,枚举,抽象类(都是由class变过来的)enum反编译过来就是class或abstract class 定义接口的原因:当初些抽象类的时候(假设抽象类中一个普通的属性都没有,全是由public static final修饰的 所有的方法都是抽象方法,都由public abstract修饰)人们不愿意写这么多关键字,所以定义了一个新的关键字interface,所有关键字省略特殊的抽象类就变成接口 enum可以拿抽象类来写(枚举是某种类型的取值是若干有限集合中的一个)其中转变的过程为:限制cl

Effective Java 第三版——38. 使用接口模拟可扩展的枚举

Tips <Effective Java, Third Edition>一书英文版已经出版,这本书的第二版想必很多人都读过,号称Java四大名著之一,不过第二版2009年出版,到现在已经将近8年的时间,但随着Java 6,7,8,甚至9的发布,Java语言发生了深刻的变化. 在这里第一时间翻译成中文版.供大家学习分享之用. 38. 使用接口模拟可扩展的枚举 在几乎所有方面,枚举类型都优于本书第一版中描述的类型安全模式[Bloch01]. 从表面上看,一个例外涉及可扩展性,这在原始模式下是可能的

枚举Enum 的常用方法

一.枚举介绍 通常定义常量方法和枚举定义常量方法区别 public class State { public static final int ON = 1; public static final Int OFF= 0; } 第一.它不是类型安全的. 你必须确保是int,其次,你还要确保它的范围是0和1. 第二.不够直观. 很多时候你打印出来的时候,你只看到 1 和0 ,但其没有看到代码的人并不知道你的企图. 抛弃你所有旧的public static final常量 枚举是一种规范它规范了参数

面向对象二 — — 继承、抽象类、接口

一.继承 extends 继承的特点:Java的继承通过extends关键字来实现,实现继承的类被称为子类,被继承的类称为父类 1.参数列表必须完全与被重写的方法相同,否则不能称其为重写而是重载. 2.返回的类型必须一直与被重写的方法的返回类型相同,否则不能称其为重写而是重载. 3.访问修饰符的限制一定要大于被重写方法的访问修饰符(public>protected>default>private) 4.重写方法一定不能抛出新的检查异常或者比被重写方法申明更加宽泛的检查型异常. 用supe

C#知识点-枚举器和迭代器

一.几个基本概念的理解 问题一:为什么数组可以使用foreach输出各元素 答:数组是可枚举类型,它实现了一个枚举器(enumerator)对象:枚举器知道各元素的次序并跟踪它们的位置,然后返回请求的当前项 问题二:不用foreach能不能遍历各元素 问题三:什么是可枚举类 答:可枚举类是指实现了IEnumerable接口的类:IEnumerable接口只有一个成员GetEnumerator方法,它返回对象的枚举器 问题四:什么是枚举器 答:实现了IEnumerator接口的枚举器包含三个函数成

Java 枚举7常见种用法

用法一:常量 在JDK1.5 之前,我们定义常量都是: publicstaticfianl.... .现在好了,有了枚举,可以把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法. Java代码 public enum Color { RED, GREEN, BLANK, YELLOW } 用法二:switch JDK1.6之前的switch语句只支持int,char,enum类型,使用枚举,能让我们的代码可读性更强. Java代码 enum Signal { GREEN, YELL

Java核心 --- 枚举

Java核心 --- 枚举 枚举把显示的变量与逻辑的数字绑定在一起在编译的时候,就会发现数据不合法也起到了使程序更加易读,规范代码的作用 一.用普通类的方式实现枚举 新建一个终态类Season,把构造方法设为私有,因为枚举值不能随意增加因为不能new出这个类的对象,所以需要定义成员变量,把new写在类的内部这样,就可以在类的外部通过访问类的静态成员变量的方式访问到枚举值通过这样的方式,只能在类的外部使用在枚举类的内部定义的枚举值 类Season里面是可以有方法的,我们设置地球又公转了四分之一方法

枚举的七种常见使用方法

枚举的使用的方法有很多,下面举出常用的七种方法: 用法一:常量 在JDK1.5之前,我们定义常量都是:publicstaticfianl.....现在好了,有了枚举,可以把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法. Java代码 public enum Color { RED, GREEN, BLANK, YELLOW } 用法二:switch JDK1.6之前的switch语句只支持int,char,enum类型,使用枚举,能让我们的代码可读性更强. Java代码 enu