《数据结构与抽象:Java语言描述(原书第4版)》一P.3.1 写一个接口

简介:

本节书摘来华章计算机《数据结构与抽象:Java语言描述(原书第4版)》一书中的第1章 ,第1节,[美]弗兰克M.卡拉诺(Frank M. Carrano) 蒂莫西M.亨利(Timothy M. Henry) 著 罗得岛大学  新英格兰理工学院 辛运帏 饶一梅 译 更多章节内容可以访问云栖社区“华章计算机”公众号查看。

P.3.1 写一个接口

Java接口的开头很像类的定义,不过要用保留字interface替代class。即接口的开头是如下的语句
image

而不是这样的
image

接口可以含有任意多个公有方法头,每个方法头的后面是一个分号。接口不声明类的构造方法,也不能声明静态或终态方法。注意,接口中的方法默认是公有的,故在方法头中可以省略puclic。接口还可以定义任意个公有命名常量。

示例。想象如圆、正方形或一块地这样的对象,它们既有周长又有面积。假定我们想让这种对象的类有一个返回数量值的get方法。如果实现这些类的程序员不是同一个人,则他们可能会用不同的方式来说明这些方法。为确保定义这些方法的类有统一的格式,我们可以写一个接口,如程序清单P-1所示。这个接口为程序员提供了方法说明的简单概要。程序员应该不必查看实现它们的类就能使用这些方法。

程序清单P-1 接口Measurable
image

将接口定义保存在一个与接口名同名的文件中,后面加上.java。例如,前面这个接口在文件Measurable.java中。

程序设计技巧:Java接口是写注释的好地方,用来说明每个方法的目的、参数、前置条件及后置条件。用这种方式,可以在一个文件中说明一个类,而在另一个文件中实现它。
注:接口可以声明数据域,但它们必须是公有的。通常,类的数据域是私有的,故接口中的任何数据域表示的都应该是命名常量。所以它们应该是公有的、终态的及静

态的。

注:接口中声明的方法不能是静态的,也不能是终态的。但是,可以在实现接口的类中声明这样的方法。

示例。假定你想定义人名的类。最开始或许定义程序清单P-2所示的Java接口,为这个人名类说明方法。限于篇幅,我们只为最开始的两个方法添加了注释。这个接口说明了类中所需要的方法。当实现附录D中程序清单D-1所示的如Name这样的类时可以使用它。另外,只看这个接口,就应该能为类写一个客户。

程序清单P-2 接口NameInterface
image

注意,方法giveLastNameTo的参数的数据类型是NameInterface而不是Name。我们将在后面谈论接口当作数据类型的话题。现在,只需知道接口不应该限制实现它的类的名字。

注:命名一个接口

接口名,特别是Java中那些标准的接口名,常常以“able”结尾,例如Measurable。这样的结尾并不总能提供一个好名字,所以也经常使用“er”或“Interface”作为结尾。与Java的异常以“Exception”为结尾一样,接口经常以“Interface”作为结尾。

相关文章
|
4天前
|
存储 供应链 Java
《Java 简易速速上手小册》第3章:Java 数据结构(2024 最新版)
《Java 简易速速上手小册》第3章:Java 数据结构(2024 最新版)
4 1
|
4天前
|
Java 开发者
探索 Java 的函数式接口和 Lambda 表达式
【4月更文挑战第19天】Java 中的函数式接口和 Lambda 表达式提供了简洁、灵活的编程方式。函数式接口有且仅有一个抽象方法,用于与 Lambda(一种匿名函数语法)配合,简化代码并增强可读性。Lambda 表达式的优点在于其简洁性和灵活性,常用于事件处理、过滤和排序等场景。使用时注意兼容性和变量作用域,它们能提高代码效率和可维护性。
|
5天前
|
前端开发 Java Go
开发语言详解(python、java、Go(Golong)。。。。)
开发语言详解(python、java、Go(Golong)。。。。)
|
5天前
|
Java
Java接口中可以定义哪些方法?
【4月更文挑战第13天】
7 0
Java接口中可以定义哪些方法?
|
5天前
|
人工智能 前端开发 Java
Java语言开发的AI智慧导诊系统源码springboot+redis 3D互联网智导诊系统源码
智慧导诊解决盲目就诊问题,减轻分诊工作压力。降低挂错号比例,优化就诊流程,有效提高线上线下医疗机构接诊效率。可通过人体画像选择症状部位,了解对应病症信息和推荐就医科室。
39 10
|
7天前
|
设计模式 Java
Java接口与抽象类
Java接口与抽象类
17 0
|
10天前
|
Java Android开发 C++
Kotlin vs Java:选择最佳语言进行安卓开发
【4月更文挑战第13天】Java曾是安卓开发的主流语言,但Kotlin的崛起改变了这一局面。Google在2017年支持Kotlin,引发两者优劣讨论。Java以其成熟稳定、强大生态和跨平台能力占优,但代码冗长、开发效率低和语言特性过时是短板。Kotlin则以简洁语法、空安全设计和高度兼容Java脱颖而出,但社区和生态系统仍在发展中,可能存在学习曲线和性能问题。选择语言应考虑项目需求、团队熟悉度、维护性、性能和生态系统。无论选择哪种,理解其差异并适应新技术至关重要。
|
11天前
|
Java API
编码的奇迹:Java 21引入有序集合,数据结构再进化
编码的奇迹:Java 21引入有序集合,数据结构再进化
16 0
|
11天前
|
安全 Java 编译器
接口之美,内部之妙:深入解析Java的接口与内部类
接口之美,内部之妙:深入解析Java的接口与内部类
33 0
接口之美,内部之妙:深入解析Java的接口与内部类
|
13天前
|
存储 Java
java接口和内部类
java接口和内部类