开发者社区> 华章计算机> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

《数据结构与抽象: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”作为结尾。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
10057
文章
0
问答
来源圈子
更多
+ 订阅
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载