`
atmosphere
  • 浏览: 14776 次
  • 性别: Icon_minigender_1
博客专栏
807a8b01-317a-34bf-9d0f-011a7c5a74b4
javase7官方教程翻译...
浏览量:11106
社区版块
存档分类
最新评论

JAVASE官方教程:接口之概述(1)

阅读更多

当一个软件有多个共同的开发者一起完成时,他们需要制定一个"契约"规定他们的软件是怎么交互的.每一个组不需要知道其他组的代码是怎么编写的.通常,接口就是这种"契约".

例如,想象一下我们的未来社会,汽车不需要人为操作,只需用计算机控制就可以把乘客从一个地方送到另一个地方.汽车制造厂编写软件用来控制汽车启动,停止,加速,向左走等等.其他厂商比如电子导航仪厂商,让计算机系统接受GPS位置数据,无线传输交通状况并使用这些信息来开车.

这个汽车厂商必须公布一个工业标准接口用来讲清楚什么方法可以被调用让汽车移动.导航仪厂商就能通过调用这些接口里的方法来编写软件达到控制汽车目的.两个厂商都不需要知道对方是如何实现他们自己软件的.

java中的接口

在java语言中,一个接口(interface)是一个引用类型,就像一个类,但是只能包含常量,方法签名,nested types没有方法体.接口不能不实例化-只能被某个类实现或者是被其他的接口所继承.

定义一个接口就好像创建一个新的类:

public interface OperateCar {

   // 常量声明

   // 方法签名
   int turn(Direction direction,   // An enum with values RIGHT, LEFT
              double radius, double startSpeed, double endSpeed);
   int changeLanes(Direction direction, double startSpeed, double endSpeed);
   int signalTurn(Direction direction, boolean signalOn);
   int getRadarFront(double distanceToCar, double speedOfCar);
   int getRadarRear(double distanceToCar, double speedOfCar);
         ......
   // more method signatures
}

 

注意:方法签名没有花括号,是以分号结尾的.

为了使用接口,你需要写一个类实现(implements)这个接口.当这个类提供了在接口所有的方法后,这个类就可以被实例化.

public class OperateBMW760i implements OperateCar {

   // 操纵汽车的方法的实现 --
   // 例如:
   int signalTurn(Direction direction, boolean signalOn) {
      //打转弯灯
      //关闭转弯灯
   }

   // 其他实现

}

 

 

在以上的自动汽车的例子中,汽车厂商将会实现这个接口.当然雪佛兰的实现跟丰田公司的实现是不一样的,但是他们都坚持相同的接口.导航仪制造商就是这个接口的使用者,导航系统将会调用接口中的方法:转弯,刹车,加速等等.

接口APIs


自动汽车的例子像我们展示了接口作为工业标准API的用法.在商业软件中产品中也是相同的.典型的,某个公司销售一个软件包给另外一个想要把这个软件包用在自己的软件中的公司,这个软件包中包含了很多方法.比如有一个数字图像处理的软件包卖给一个做面向最终用户图像程序的公司.这个图像处理公司公布给他的客户一个接口,并且自己写了一系列的类来实现这个接口.这个面向最终用户的公司使用接口中定义的方法.这个图像处理公司的实现方法是保密的.

接口和多继承


在java中接口还扮演了一个非常重要的角色.尽管接口跟类联合起来工作,但是接口不属于类层次体系.java语言不允许多继承,但是接口提供了一种变通的方法.

在java中,一个类只能继承"一"个类而可以实现多个接口,所以对象可以有多种类型:他们本身的类型和所有他们实现的接口类型.这意味着,如果一个变量被声明为一个接口类型,他就可以引用任意实现了此接口的类的实例.

分享到:
评论

相关推荐

    Java自学视频教程-JavaSE基础-Java基础语法-02、Java语言概述.mp4

    Java是一种编程语言,被特意设计用于互联网的分布式环境。Java具有类似于C++语言的“形式...本视频教程帮助你从新手小白到成为精通JAVA的高手,从软件的安装,功能的介绍和使用,实战演习讲解等各大维度进行详细的教学.

    JavaSE基础入门视频教程33天之(11) part1

    首先,我们从"接口概述.avi"开始,接口在Java中扮演着一种契约的角色,它定义了一组方法的签名,但不包含具体的实现。这使得接口成为了不同类之间通信的标准,确保了代码的灵活性和可扩展性。接口通过关键字`...

    JavaSE基础入门视频教程33天之(2) part1

    本教程“JavaSE基础入门视频教程33天之(2) part1”旨在为初学者提供全面的Java基础知识,帮助他们从零开始掌握这门强大的编程语言。通过33天的学习计划,目标是使学员在完成课程后具备扎实的JavaSE基础,有能力...

    JavaSE视频教程

    #### 一、Java概述与安装配置 - **Java语言的特点**: - 简单性:Java语法简洁明了,易于理解和学习。 - 面向对象:Java是一种纯面向对象编程语言,支持封装、继承、多态等特性。 - 平台无关性:通过JVM(Java...

    JavaSE基础入门视频教程33天之(15) part1

    本视频教程“JavaSE基础入门视频教程33天之(15)”是针对初学者设计的,旨在帮助那些没有编程基础的人快速掌握Java编程技能,并在学精后能够获得较高的薪资水平,如10K以上。 在这个阶段,主要讲解的是Java中对象...

    JavaSE基础入门视频教程33天之(11) part2

    本教程是针对JavaSE基础入门的33天学习计划的一部分,第11天的内容主要聚焦在面向对象编程的核心概念上,旨在帮助初学者构建坚实的Java编程基础,为未来的高薪就业打下坚实根基。 首先,"day11_11(面向对象)接口和...

    JavaSE基础入门视频教程33天之(9) part2

    本套JavaSE基础入门视频教程共33天,旨在帮助初学者从零开始掌握Java编程基础知识,通过第9天的学习,你将深入理解面向对象编程的核心概念。在Java编程中,面向对象是极其重要的思想,它使代码更具可读性和可维护性...

    JAVASE 笔记

    这份"JAVASE 笔记"显然是一份深入学习Java SE的重要资料,由"黑马程序员"提供,这是一家知名的在线编程教育机构,以其详尽的教程和实战项目著称。现在,让我们一起深入探讨Java SE中的关键知识点。 1. **Java基础**...

    JavaSE30天笔记.zip

    1. **Java语言概述**(day1):这一部分通常涵盖Java的历史背景、发展历程以及其在软件开发中的重要性。会介绍Java的跨平台特性、"一次编写,到处运行"的理念,以及如何搭建Java开发环境,包括JDK的安装和配置。 2....

    javase基础自学笔记-java开端-概述

    Java SE(标准版)是Java编程语言的核心组成部分,主要用于开发桌面应用程序。...在学习过程中,阅读官方文档、参考书籍和在线教程都是十分有益的。同时,不断练习编写代码和解决实际问题,将有助于巩固你的Java技能。

    韩顺平java se视频教程

    ### 韩顺平Java SE视频教程内容概述 韩顺平老师的Java SE视频教程旨在帮助学习者系统地掌握Java编程的基本技能。这套教程可能会涵盖以下几个方面: 1. **Java基础知识**:介绍Java的历史和发展背景,解释Java语言...

    javaSE2:java基础

    以上就是“JavaSE2:Java基础”教程涵盖的主要内容。通过学习这些知识点,你将能够熟练地使用Java语言进行程序开发,并为进一步学习Java EE(企业版)或Android开发打下坚实的基础。在实践中不断探索和积累经验,你...

    Java自学视频教程-JavaSE基础-面向对象基础-01、面向对象概述.mp4

    Java是一种编程语言,被特意设计用于互联网的分布式环境。Java具有类似于C++语言的“形式...本视频教程帮助你从新手小白到成为精通JAVA的高手,从软件的安装,功能的介绍和使用,实战演习讲解等各大维度进行详细的教学.

    Java自学视频教程-JavaSE基础-常用API-06、集合概述、ArrayList的使用.mp4

    Java是一种编程语言,被特意设计用于互联网的分布式环境。Java具有类似于C++语言的“形式...本视频教程帮助你从新手小白到成为精通JAVA的高手,从软件的安装,功能的介绍和使用,实战演习讲解等各大维度进行详细的教学.

    Java自学视频教程-JavaSE基础-常用API-02、String概述、对象创建的原理.mp4

    Java是一种编程语言,被特意设计用于互联网的分布式环境。Java具有类似于C++语言的“形式...本视频教程帮助你从新手小白到成为精通JAVA的高手,从软件的安装,功能的介绍和使用,实战演习讲解等各大维度进行详细的教学.

    Java自学视频教程-JavaSE基础-配套资料-day01-课程介绍、Java概述、IDEA、Java基础语法.rar

    Java是一种编程语言,被特意设计用于互联网的分布式环境。Java具有类似于C++语言的“形式...本视频教程帮助你从新手小白到成为精通JAVA的高手,从软件的安装,功能的介绍和使用,实战演习讲解等各大维度进行详细的教学.

    javase基础知识讲解.rar

    1. **Java概述**:Java是由Sun Microsystems公司开发的一种面向对象的编程语言,以其“一次编写,到处运行”的跨平台特性而闻名。Java SE是Java的三个主要版本之一,其他两个是Java EE(企业版)和Java ME(微型版)...

    01JavaSE基础.zip

    本压缩包"01JavaSE基础.zip"包含的是作者根据动力节点的Java零基础教程视频编写的笔记,这些笔记详细地概述了Java SE的基本概念和核心特性,旨在帮助初学者更好地理解和掌握Java编程。 1. **Java环境搭建**:首先,...

    Java SE编程入门教程 java 常用API(共22页).pptx

    1. **Java常用API**: Java提供了大量的预定义类库,使得开发者能够方便地处理各种任务。`java.lang`包是最基础的包,包含所有Java程序都必须使用的类,如`Math`类。`Math`类提供了许多数学函数,如求绝对值、正弦...

    javase自己写的作业 java学习资料

    以上只是Java SE部分核心知识点的概述,实际的“javase自己写的作业”可能涵盖了这些概念的应用实例,通过这些实例,学习者可以深入理解和掌握Java编程。在实际学习过程中,结合书籍、教程、在线资源和实践项目,将...

Global site tag (gtag.js) - Google Analytics