Java课件 10-接口学习资料_第1页
Java课件 10-接口学习资料_第2页
Java课件 10-接口学习资料_第3页
Java课件 10-接口学习资料_第4页
Java课件 10-接口学习资料_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

接口回顾如何实现多态?使用多态有什么好处?抽象类的特点是什么?抽象方法的特点是什么?掌握接口基础知识掌握面向接口编程的思想掌握常量接口的使用本节目标用abstract修饰符修饰的类是抽象类。抽象类不能被实例化。抽象类中可以包含非抽象的方法。抽象方法也是用abstract来修饰。抽象方法只需要声明,不需要实现。含有抽象方法的类必须声明为抽象类,所有抽象方法被实现的子类才能生成对象。抽象类为什么使用接口只有抽象方法的抽象类?可以用接口来表示接口有比抽象类更好的特性:1.可以被多继承2.设计和实现完全分离3.更自然的使用多态4.更容易搭建程序框架5.更容易更换实现

……

用接口代替这样的抽象类,是因为:什么是接口认识一下接口必须知道的接口特性接口不可以被实例化实现类必须实现接口的所有方法实现类可以实现多个接口接口中的变量都是静态常量publicinterfaceMyInterface

{publicvoidfoo();//其他方法}所有方法都是:publicabstract抽象类除外Java中的多继承常作为类型使用如何使用接口用程序描述USB接口如何使用接口可以使用Java接口来实现

USB接口本身没有实现任何功能

USB接口规定了数据传输的要求

USB接口可以被多种USB设备实现编写USB接口实现USB接口使用USB接口根据需求设计方法实现所有方法用多态的方式使用如何使用接口编码实现publicclassUDiskimplementsUsbInterface{publicvoidservice(){System.out.println("连接USB口,开始传输数据。");}}publicinterfaceUsbInterface{/***USB接口提供服务。*/voidservice();}UsbInterfaceuDisk=newUDisk();uDisk.service();编写接口实现接口使用接口实现接口使用的关键字用接口实现多态多个接口使用“,”分隔接口是一种约定生活中,我们使用的两相电源插座,规定了:两个接头间的额定电压两个接头间的距离接头的形状接口是一种约定面向接口编程体现在接口名称和注释上程序设计时面向接口的约定而不考虑具体实现有些接口只有名称方法的实现方式要通过注释来约定为什么需要常量生活中,一周有七天,如何用代码表示?publicclassWeek{privateintdays=7;publicstaticvoidmain(String[]args){Weekw=newWeek();System.out.println("一周有"+w.days+"天");}}publicclassWeek{privateintdays=7;publicstaticvoidmain(String[]args){Weekw=newWeek();w.days++;System.out.println("一周有"+w.days+"天");}}一周有7天控制台输出然而,总有不尽人意的事情发生:一周有8天控制台输出如何保证变量的值在运行期无法被改变?——使用常量什么是常量常量是一种标识符,它的值在运行期间恒定不变常量标识符在程序中只能被引用,而不能被重新赋值常量圆周率PI圆周率PI代码表示方式publicstaticfinaldoublePI

=3.14159265358979323846;用法publicstaticdoubletoRadians(doubleang){returnang/180.0*PI;}常量的优点如果不使用常量,直接在程序中填写数字或字符串,将会有什么麻烦?publicstaticdoubletoRadians(doubleang){returnang/180.0*3.14159265358979323846;}publicstaticdoubletoDegrees(doubleang){returnang*180.0/3.14159265358979323846;}publicstatic

finaldoublePI=3.14159265358979323846;//圆周率publicstaticdoubletoRadians(doubleang){returnang/180.0*PI;}publicstaticdoubletoDegrees(doubleang){returnang*180.0/PI;}程序的可读性变差:用户很难理解数字或字符串的意思程序的可维护性变差:如果数值改变,则需要在很多地方改动,既麻烦又易出错使用常量可以增强程序的可读性、可维护性Java中常量的定义规则加入final关键字代表常量,加入static关键字代表类变量尽量使用含义直观的常量来表示那些将在程序中多次出现的数字或字符串publicclassAccpStudent{publicstaticfinalintFEMALE=1;//代表女性publicstaticfinalintMALE=2;//代表男性privateintsex;//性别publicvoidsetSex(intsex){if(sex==FEMALE) System.out.println("这是一名女学生");elseif(sex==MALE) System.out.println("这是一名男学生");this.sex=sex;}}在Java接口中声明常量在Java接口中声明的变量在编译时会自动加上staticfinal的修饰符,即声明为常量,因而Java接口通常是存放常量的最佳地点publicinterfaceAccpSchoolType{

publicstaticfinalStringACCP="ACCP加盟中心";

publicstaticfinalStringBENET="BENET直营中心";}publicinterfaceAccpSchoolType{StringACCP="ACCP加盟中心";StringBENET="BENET直营中心";}等同于final用法Penguin类不希望再被其他类继承?使用final类方法不希望被重写?使用final方法属性值不希望被修改?使用final方法publicfinalclassPenguinextendsPet{//…}最终版的类publicfinalvoidprint(){//…}最终版的方法publicclassPenguin{finalStringhome="南极";//居住地

publicvoidsetHome(Stringname){this.home=home;//错误,home不可以再次赋值}}最终版的属性值常见错误请指出下面代码的错误classDog{Stringname;publicDog(Stringname){=name;}}classTest{publicstaticvoidmain(String[]args){finalDogdog=newDog("欧欧");="美美";dog=newDog("亚亚");}}使用final修饰引用型变量,变量不可以再指向另外的对象使用final修饰引用型变量,变量的值是固定不变的,而变量所指向的对象的属性值是可变的OO思想总结OO基本特征定义具体实现方式优势封装隐藏实现细节,对外提供公共的访问接口属性私有化、添加公有的setter、getter方法增强代码的可维护性继承从一个已有的类派生出新的类,子类具有父类的一般特性,以及自身特殊的特性继承需要符合的关系:is-a1、抽象公共部分2、增强代码的可复用性多态同一个接口,使用不同的实例而执行不同操作通过Java接口/继承来定义统一的接口;通过方法重写为不同的实现类/子类定义不同的操作增强代码的可扩展性、可维护性练习publicinterfaceIntroduceable{publicStringdetail();publicvoidintroduction(){ detail();}privatevoidshowMessage();voidspeak();}Java接口中的方法必须是publicJava接口中不能有方法体实现编译器会自动加上public修饰符请指出下列Java代码中的错误。练习训练要点:接口的基础知识需求说明:采用面向接口编程思想显示一封家书家书内容包含:称谓问候内容祝福落款练习实现思路:编写家书类H

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论