(57)-Java 8程序设计语言_第1页
(57)-Java 8程序设计语言_第2页
(57)-Java 8程序设计语言_第3页
(57)-Java 8程序设计语言_第4页
(57)-Java 8程序设计语言_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

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

文档简介

抽象类与接口学习目标理解抽象类的概念。掌握UML设计抽象类。掌握抽象类的使用。掌握Number抽象类与基本类型的包装类。掌握使用Date类、Calendar类和GregorianCalendar类处理日历。理解接口的概念。掌握接口的使用。探究具体类、抽象类和接口的相同点与不同点。掌握使用Comparable接口定义类对象的自然顺序。知识图谱Java中可以定义不含方法体的方法,方法的方法体由该类的子类根据自己的情况去实现,这样的方法称为抽象方法(abstractmethod)。抽象方法语法:[访问控制符]

abstract<返回值类型>方法名([参数列表]);抽象方法抽象类(abstractclass):包含抽象方法的类必须是抽象类。一个类C如果满足下面的任一条件,则该类包含抽象方法,必须声明为抽象类:类C显式地包含一个抽象方法的声明;类C的父类中声明的抽象方法未在类C和它的父类中实现;类C的父接口中声明或继承一个方法,并且类C中未定义或继承一个方法来实现它。抽象类语法:抽象类抽象类UML表示抽象类示例抽象类和抽象方法必须用abstract关键字来修饰。只有实例方法可以声明为抽象方法。抽象类不能被实例化,即不能用new关键字创建对象。抽象类的父类可以是具体类。具体子类必须实现抽象父类中所有抽象方法,否则子类需要声明为抽象类。注意基本类型的包装类包装类:Byte、Short、Integer、Long、Double、Float、Boolean、Character

作用为基本数据类型提供方法和常量值;用于只能处理对象引用的地方。包装类的对象的值是不变的。基本类型的包装类基本类型的包装类构造方法以一个对应的基本数据类型为参数以字符串为参数(除了Character)通用方法publicstaticTypevalueOf(Stringstr)publicStringtoString()publictypetypeValue()publicintcompareTo(Typeother)publicbooleanequals(Objectobj)publicinthashCode()包装类的构造方法与通用方法Byte,Short,Integer,Long方法publicstatictypeparseType(Strings)publicstatictypeparseType(Strings,intradix)整数包装类运行结果:整数包装类方法publicstaticTypevalueOf(Strings,intradix)publicstaticStringtoString(typeval,intradix)publicstaticStringtoHexString(typeval)publicstaticStringtoOctalString(typeval)publicstaticStringtoBinaryString(typeval)整数包装类运行结果:整数包装类Float,Double常量POSITIVE_INFINITYNEGATIVE_INFINITYMIN_VALUE,MAX_VALUE,NaN方法publicbooleanisInfinite()publicbooleanisNaN()publicstatictypeparseType(Strings)publicstaticStringtoString(typed)浮点包装类将基本类型的值转换为包装类对象,称为装箱(boxing)。例如:IntegerintObject=10;等价于IntegerintObject=newInteger(10);IntegerintObject1=Integer.valueOf(10);将包装类对象转换为基本类型的值,称为开箱(unboxing)。调用包装类型对应的typeValue()方法。例如:intk=intOValue();

基本类型与包装类之间的自动转换Date、Calendar

和GregorianCalendar类java.util.Date+Date()//无参构造方法:用系统当前时间创建Date对象实例。+Date(longdate)//用指定时间的毫秒作参数创建Date对象实例。+Date(intyear,intmonth,intdate)//用指定的年月日创建Date对象实例。+Date(intyear,intmonth,intdate,inthrs,intmin,intsec)//用指定的年月日时分秒创建Date对象实例。+intcompareTo(DateanotherDate)//日期对象的大小比较+booleanbefore(Datewhen)//判断Date对象的先后booleanafter(Datewhen)//判断Date对象的先后......java.util.DateCalendar和GregorianCalendarCalendar类的常量Calendar类的域常量常量说明YEAR日历的年份MONTH日历的月份,0表示一月DATE日历的天HOUR日历的小时(12小时制)HOUR_OF_DAY日历的小时(24小时制)MINUTE日历的分钟SECOND日历的秒DAY_OF_WEEK一周的天数,1是星期日DAY_OF_MONTH和DATE一样DAY_OF_YEAR当前年的天数,1是一年的第一天WEEK_OF_MONTH当前月内的星期数,1是该月的第一个星期WEEK_OF_TEAR当前年内的星期数,1是该年的第一个星期AM_PM表明是上午还是下午(0表示上午,1表示下午)日历示例日历示例接口接口是常量和抽象方法的集合;是能力、规范、协议的反映。语法

[modifier]interfaceinterfaceName{ constant_declaration* abstract_method_declaration*}接口中的数据字段隐含为publicstaticfinal接口体中的方法隐式地声明为publicabstract接口例如:接口UML表示可以在能够使用任何其他数据类型的地方使用接口。接口类型属于引用类型,接口类型的变量可以存储:空引用(null)任何实现该接口的类的实例的引用类实现接口的语法[修饰符]classclassName[extendssuperclass][implementsinterfaceNameList]{ classbody...}注意:除非类被声明为abstract,所有父接口中声明的成员方法必须被实现,或者通过在类中实现或者通过从父类继承已有的方法实现。使用接口一个接口可以继承多个接口。语法[修饰符]interfaceinterfaceName[extendsinterfaceNameList]{ declaration* }如果接口声明中提供了extends子句那么该接口就继承了父接口的成员方法和常量。这些接口称为该接口的直接父接口。任何实现该接口的具体类,必须实现该接口继承的其他接口。接口继承接口与抽象类的比较接口抽象类含义接口通常用于描述一个类的外围能力,而不是核心特征,类与接口之间的是-able或者cando的关系。抽象类定义了它的后代的核心特征。派生类与抽象类之间是is-a的关系。多重继承一个类可以实现多个接口一个类只能继承一个抽象类方法一般接口不提供实现代码抽象类可以提供完整代码、缺省代码以及用于覆盖的存根。数据字段只包含publicstaticfinal常量,常量必须在声明时初始化。可以包含常量、实例变量和静态变量。现有类任何现有的类都可以添加一个接口的实现现有类必须重写,改为只从抽象类派生适用性所有的实现只是共享方法签名所有实现大同小异,并且共享状态和行为简洁性接口中的常量都被假定为publicstaticfinal,可以省略。不能调用任何方法修改这些常量的初始值。接口中方法被默认定义为publicabstract。可以在抽象类中放置共享代码。可以使用方法来修改实例和静态变量(常量)的初始值。必须用abstract显式声明方法为抽象方法。添加功能如果为接口添加一个新的方法,则必须查找所有实现该接口的类,并为他们逐一提供该方法的实现。如果为抽象类提供一个方法,可以选择提供一个缺省的实现,那么所有已存在的代码不需要修改就可以继续工作。接口与抽象类的比较Comparable接口Comparable接口Comparable接口Integer、Boolean实现Comparable接口String、Date实现Comparable接口对于实现Comparable的类对象实例数组,jaya.util.Arrays.sort(Object[])方法就可以使用compareTo方法来对数组中的对象进行比较和排序。对于实现Comparable的类对象实例列表ArrayList,jaya.util.Collections.sort(List<T>list)方法就可以使用compareTo方法来对ArrayList中的对象进行比较和排序。Comparable接口应用编写程序:学生Student类实现Comparable接口,compareTo方法实现按学生学号来比较顺序。编写测试程序,对如下5个学生,按学号从小到大排序输出学生信息,及按学生学号从大到小排序输出学生信息。示例代码:jufe.chap08.section02.Student.javajufe.chap08.section02.TestComparable

温馨提示

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

评论

0/150

提交评论