面向对象高级特性下精选PPT.ppt
面向面向对象高象高级特性下特性下第1页,此课件共12页哦本章重点本章重点p掌握掌握final关键字所修饰的常量、方法和类的用法及其特点。关键字所修饰的常量、方法和类的用法及其特点。p熟练掌握熟练掌握abstract关键字的用法,抽象方法的使用和抽象类关键字的用法,抽象方法的使用和抽象类的定义。的定义。p熟练掌握接口的定义、用法及其作用。熟练掌握接口的定义、用法及其作用。p掌握内部类的概念、特点、应用以及内部类调用方法中的要掌握内部类的概念、特点、应用以及内部类调用方法中的要素。素。第2页,此课件共12页哦final关键字的使用关键字的使用final:最终的最终的,最后的最后的(修饰类(修饰类,方法方法,属性)属性)1)用用final修饰的类修饰的类,表示这个类不可以再被继承表示这个类不可以再被继承,叫最终类叫最终类 一般一般jdk的工具类的工具类,大部分都是用大部分都是用final修饰的修饰的,我们写的类我们写的类,一定不要使用一定不要使用final修饰修饰,struts1.x/2.x,hibernate3.2/3.5/4.0,spring2.5/3.0底层实现全部是基于动态代理实现底层实现全部是基于动态代理实现,如果用如果用final修饰我们修饰我们写的类写的类,就使用不了动态代理技术就使用不了动态代理技术(以后再说以后再说)2)用用final修饰方法修饰方法,这个方法不可以被重写这个方法不可以被重写第3页,此课件共12页哦 3)用用final修饰变量修饰变量,该变量初始化以后该变量初始化以后,不可以再被修改不可以再被修改 a:用用final修饰的局部变量修饰的局部变量 b:用用final修饰的方法参数修饰的方法参数 c:用用final修饰的引用类型的变量修饰的引用类型的变量(这个对象的地址不可以被修改这个对象的地址不可以被修改,但是但是 对象的属性可以修改对象的属性可以修改)常量常量:值永远都不在发生变化值永远都不在发生变化 固定的写法固定的写法:(public)static final 数据类型数据类型 常量名常量名=值值;常量名常量名:最好字母全部大写最好字母全部大写第4页,此课件共12页哦抽象类抽象类-不是具体的类不是具体的类(有的方法没有实现有的方法没有实现)1)1)抽象的方法抽象的方法-只有行为的概念只有行为的概念,没有具体的实现没有具体的实现 (只有方法的声明只有方法的声明,没有方法的实现没有方法的实现,需要靠子类来实现需要靠子类来实现)格式格式:public abstract:public abstract 返回值类型返回值类型 方法名字方法名字(参数列表参数列表););2)2)含有抽象方法的类含有抽象方法的类,叫做抽象类叫做抽象类 格式格式:abstrct class:abstrct class 类名类名 3)3)抽象类的子类必须要实现所有的抽象方法抽象类的子类必须要实现所有的抽象方法 4)4)抽象类只能被继承抽象类只能被继承,一个具体的类来继承一个抽象类一个具体的类来继承一个抽象类,并且实现其方法并且实现其方法 5)5)抽象类不能直接实例化抽象类不能直接实例化,但可以使用父类声明指向子类对象但可以使用父类声明指向子类对象第5页,此课件共12页哦接口接口 1)1)一般认为是一个特殊的抽象类一般认为是一个特殊的抽象类 2)2)特点特点:接口中的方法全部都是抽象方法接口中的方法全部都是抽象方法,接口中的属性全是常量接口中的属性全是常量 3)3)对比接口格式和抽象类格式对比接口格式和抽象类格式 抽象类的格式抽象类的格式 abstract class abstract class 类名类名 属性属性 构造方法构造方法 一般方法一般方法 抽象方法抽象方法 接口的格式接口的格式 interface interface 接口名接口名 常量常量 抽象方法抽象方法 发现一个问题发现一个问题:接口的格式更适合于设计接口的格式更适合于设计,现在的企业开发当中现在的企业开发当中,大部分都使用接口来做设计大部分都使用接口来做设计,抽象类使用较少抽象类使用较少,而且接口及其灵活而且接口及其灵活第6页,此课件共12页哦4)4)接口中的常量和抽象方法的简写接口中的常量和抽象方法的简写 常量常量:数据类型数据类型 常量名常量名 =值值;抽象方法抽象方法:返回值类型返回值类型 方法名字方法名字 (参数参数););5)5)接口不能够直接的实例化接口不能够直接的实例化,可以让实现类来实例化可以让实现类来实例化,接口跟实现类直接关接口跟实现类直接关 系就是一种特殊的继承关系系就是一种特殊的继承关系 6)6)接口可以使用父类声明指向子类对象接口可以使用父类声明指向子类对象(web(web开发中经常使用开发中经常使用)7)Java 7)Java中类的继承是比较单一的中类的继承是比较单一的,尤其功能方法尤其功能方法:因为是类是单继承因为是类是单继承 接口可以实现多继承接口可以实现多继承 ,一个类可以实现多个接口一个类可以实现多个接口,近似的实现了多继承近似的实现了多继承第7页,此课件共12页哦内部类(内部类(Inner Class)在之前讲到的类都是由属性和方法组成的,但在在之前讲到的类都是由属性和方法组成的,但在Java中还有中还有一种特殊的语法,就是一个类的内部定义一个类,并将这个一种特殊的语法,就是一个类的内部定义一个类,并将这个类称为内部类。类称为内部类。根据内部类在外部类中所处的位置的不同,可将内部类分为:根据内部类在外部类中所处的位置的不同,可将内部类分为:局部内部类和成员内部类。局部内部类是指定义在外部类的方法体局部内部类和成员内部类。局部内部类是指定义在外部类的方法体内的内部类;成员内部类是指定义在外部类方法体外的内部类。内的内部类;成员内部类是指定义在外部类方法体外的内部类。第8页,此课件共12页哦第9页,此课件共12页哦内部类的声明格式:内部类的声明格式:public class 外部类名外部类名访问控制符访问控制符 修饰符修饰符 成员成员;访问控制符访问控制符 修饰符修饰符 class 内部类名内部类名访问控制符访问控制符 修饰符修饰符 成员成员;第10页,此课件共12页哦在外部类以外的其他类访问内部类:在外部类以外的其他类访问内部类:外部类外部类.内部类内部类 内部类对象内部类对象=new 外部类外部类().new 内部类内部类();静态内部类创建对象实例静态内部类创建对象实例:外部类外部类.静态内部类静态内部类 静态内部类对象名静态内部类对象名=new 外部类外部类.静态内部类静态内部类();第11页,此课件共12页哦小结小结final关键字表示最终的含义,可以修饰类、方法和属性。关键字表示最终的含义,可以修饰类、方法和属性。(1)使用)使用final关键字修饰类时,表示该类不能被继承,即不能有子类关键字修饰类时,表示该类不能被继承,即不能有子类(2)使用)使用final关键字修饰方法时,表示该方法不能被子类的方法重写关键字修饰方法时,表示该方法不能被子类的方法重写(3)使用)使用final关键字修饰变量时,变量即变成常量,一旦被赋值就不可以在修关键字修饰变量时,变量即变成常量,一旦被赋值就不可以在修改。改。被被abstract关键字修饰的类称为抽象类,抽象类看可以包含非抽象方法和抽象方法。关键字修饰的类称为抽象类,抽象类看可以包含非抽象方法和抽象方法。抽象方法不能含有方法体,而是留给抽象类派生出的子类去实现。抽象方法不能含有方法体,而是留给抽象类派生出的子类去实现。抽象类不能实例化,但可以定义构造方法,必须通过其子类进行实例化操作。抽象类不能实例化,但可以定义构造方法,必须通过其子类进行实例化操作。接口是由全局变量和方法,接口必须被子类实现,一个接口可以继承一个或多接口是由全局变量和方法,接口必须被子类实现,一个接口可以继承一个或多个接口,但是接口不能实现接口。个接口,但是接口不能实现接口。第12页,此课件共12页哦