java程序设计模块5

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

目录接口与包学习目标会编写接口。会实现接口。会使用接口。理解Java接口与多态的关系。会创建包和导入包。目录案例引入——计算各种图形的面积和周长案例说明生活中有各种常见的规则图形,如三角形、圆、长方形、梯形等,而这些图形有着共同的特征,我们往往对这些不同的图形有着常见的操作,如求周长、求面积等。现在我们通过Java程序来实现面向对象编程,求各种图形的面积和周长。案例分析求各种图形的面积和周长需要考虑图形的边长或半径,不同图形都要求面积和周长,我们考虑制定统一的行为规范,因此需要学习Java中接口方面的知识。目录5.2知识准备声卡显卡网卡每种卡的内部结构都不相同,可以把声卡、网卡、显卡都插在PCI插槽上,而不用担心哪个插槽是专门插哪个卡的主板5.2.1接口生活中的接口目录5.2.1接口4Java中的接口是若干个完成某一特定功能的没有方法体的方法和常量的集合。在Java接口中定义的方法在不同的地方被实现,可以具有完全不同的行为。接口定义和类定义类似,在Java中要定义一个接口,需要使用interface关键字,接口中可以声明一些方法和常量。接口的定义使用接口的注意事项(1)Java接口不能被实例化。(2)Java接口中声明的成员自动被设置为public,因此Java接口不能声明私有成员。(3)Java接口中不能出现方法体。(4)接口可以通过使用关键字extends继承其他接口。目录5.2.1接口接口的实现和使用一旦接口被定义,一个或多个类便可以实现该接口。当一个类实现一个接口时,要在该类的定义中包括implements子句,然后实现接口所定义的全部方法。实现接口需要注意的是,当一个类实现一个接口时,必须实现接口中定义的方法,否则该类必须声明为抽象类。目录5.2.1接口publicinterfaceIntroduceable{publicStringdetail();publicvoidintroduction(){detail();}privatevoidshowMessage();voidspeak();}Java接口中的方法必须是publicJava接口中不能有方法体实现编译器会自动加上public修饰符请指出下列Java代码中的错误目录【例】测试接口,定义接口文件Product.java,定义了两个常量,声明了一个方法。接口文件如下://程序文件名Product.javapublicinterfaceProduct{staticfinalStringMAKER=计算机制造厂;staticfinalStringADDRESS=上海;publicintgetPrice();}目录使用接口的源文件代码如下://程序文件名UseInterface.javapublicclassUseInterface{publicstaticvoidmain(String[]args){Computerp=newComputer();System.out.print(p.ADDRESS+p.MAKER);System.out.println(计算机的价格:+p.getPrice()+万元);}}目录classComputerimplementsProduct{publicintgetPrice(){return1;}}目录首先编译接口文件“javacProduct.java”,然后编译使用这个接口的类文件“javac.UseInterface.java”,最后执行类“javaUseInterface”,输出结果如图3.5所示。图3.5测试接口的输出结果目录5.2.2包的定义和使用包将类名空间划分为更加容易管理的块,包既是命名机制也是可见度控制机制包允许将类组合成较小的单元(类似文件夹),使其易于找到和使用相应的类文件。有助于避免命名冲突。在使用许多类时,类和方法的名称很难决定。有时需要使用与其他类相同的名称。包基本上隐藏了类并避免了名称上的冲突。包允许在更广的范围内保护类、数据和方法,可以在包内定义类,而在包外的代码不能访问该类。目录5.2.2包的定义和使用要创建一个包,只要在Java源文件的第一条语句中写一个package命令即可。该文件中定义的所有类都将属于指定的包。package语句定义了一个存储类的名字空间,如果省略package语句,类就会被保存在一个缺省的没有名称的包中。虽然省略包对于小程序来说很好用,但对于实际的应用程序来说是不适当的。大多数情况,程序员需要为自己编写的代码定义一个包。package声明的通用形式如下:packagepkg;创建包目录创建包packagemypackage;publicclassCalculate{publicdoublevolume(doubleheight,doublewidth,doubledepth){……}……}目录5.2.2包的定义和使用要想使用包中的成员,需要将包显式地包括在Java程序中。可通过import语句来实现,如下所示:importpackage_name.*;字符“*”用于导入package_name包中的所有类和接口。要导入一个特定类/接口,可使用下面的语句:importpackage_name.class_name;导入包目录导入包15importmypackage.Calculate;publicclassPackageDemo{publicstaticvoidmain(Stringargs[]){Calculatecalc=newCalculate();……}}目录5.2.3JavaAPI包16JavaAPI(JavaApplicationInterface)是Java的应用编程接口,即JavaAPI包或Java类库。它包含大量已经设计好的工具类,帮助程序员进行字符串处理、绘图、数据库访问、网络应用等方面的工作。在程序中合理地应用JavaAPI包中的类和接口,可以大大提高编程效率。目录5.2.3JavaAPI包17java.lang包它是Java语言中最核心的包,提供了一些Java程序设计中最基础的类。在编程时,该包不需使用import语句导入,包中的所有类由系统自动加载。java.util包java.io包该包中主要包含大量的实用工具类,如Date类、Calendar类、Random类等。该包主要包含与输入/输出相关的类与接口,用来对文件进行基本的操作,包括对文件和目录属性的操作,对文件读写的操作等。目录5.2.3JavaAPI包java.net包该包主要包含用于网络编程的相关的类与接口。java.sql包java.awt包该包主要包含用于数据库连接与处理的相关的类与接口。该包主要用于开发图形用户界面的早期版本。目录5.3案例实施5.3.1编写源代码5.3.2编译源代码5.3.3运行程序目录5.4训练与实战训练内容编写一个包名为mypackage的程序,定义Cal类,该类包含两个变量和用于执行加、减、乘、除的运算方法。然后编写测试类PackageTest,在main()方法中创建Cal类的对象,调用这些方法。训练目的学习用包管理程序。目录5.4训练与实战训练过程1.编写源代码创建Cal类,并将其放入mypackage包中。2.编译和运行程序编写运算测试类PackageTest,导入包mypackage。总结与体会在Java程序中创建类时如果不指定包名,程序会把类归入缺省包,这样容易导致命名冲突,使用用户自定义的包能够隐藏类,从而避免了这种冲突。目录5.5实际工作中常见问题解析5.5.1如何用接口实现多态解决办法问题Java语言面向对象多态性的实现方法通常有方法重写、方法重载和接口等。模块4已经介绍了用方法重写、方法重载来实现多态,那么如何用接口实现多态呢?用接口实现多态与在继承中用方法重写实现多态类似,可以用接口指向其实现类对象的方式来实现多态。父接口对象可以引用子类对象,父接口对象可以调用在子类中实现的方法。目录5.5.2使用继承和接口实现多态的区别解决办法问题用继承或Java接口都可以实现多态性,那么在实际应用过程中怎样选择呢?用继承或Java接口实现多态性的具体区别是,当两个类之间具有包含关系,并且子类可以复用部分父类的代码时,使用继承来实现多态;其他情况优先选择用Java接口来实现多态。应正确使用Java语言进行面向接口编程,以提高程序的重用性,增加程序的可维护性和可扩展性。目录

1 / 24
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功