Java中的类与接口 (2).ppt
《Java中的类与接口 (2).ppt》由会员分享,可在线阅读,更多相关《Java中的类与接口 (2).ppt(39页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第三章第三章Java中的类与接口中的类与接口教授:郭磊教授:郭磊【本章导读】【本章导读】lJava语言其中一个突出特点就是面向对象。所谓面向对象的方法学,就是使我们分析、设计和实现一个系统的方法尽可能地接近我们认识一个系统的方法。包括:面向对象的分析(OOA,Object-OrientedAnalysis),面向对象的设计(OOD,Object-OrientedDesign),面向对象的程序设计(OOP,Object-OrientedProgram)。l本章主要介绍面向对象的基本概念,包括类与对象、抽象类、内部类、匿名类、接口和包等。目的是为以后的Java面向对象的编程打好基础。【本章要点】【
2、本章要点】l类与对象l抽象类l内部类l匿名类l接口l包3.1类与对象l3.1.1类的声明类的声明1、类的声明格式:、类的声明格式:类首声明定义类的名字、访问权限以及与其它类类首声明定义类的名字、访问权限以及与其它类的关系等。的关系等。类主体定义类的成员,包括变量(数据)和方法类主体定义类的成员,包括变量(数据)和方法(行为)(行为)3.1类与对象l3.1.2类首声明:classextendsimplementsclass:类定义的关键字;extends:表示类和另外一些类(超类)的继承关系;implements:表示类实现了某些接口;修饰符:表示类访问权限(public)和类型说明(abstr
3、act、final);3.1类与对象3.1.3成员变量的声明格式:staticfinallstatic:表示是一个类成员变量(静态变量);lfinal:表示是一个常量;例:finaldoublePI=3.1415926;l修饰符:表示变量的访问权限(缺省访问friendly、public、protected和private)l作用域:整个类。同一类中的所有方法都可以对其访问。并可简单地通过名字来引用。(在方法体内定义的变量是局部变量,作用域只能在方法体内)3.1类与对象l3.1.3成员方法方法的定义包括两部分:方法声明和方法体。一般格式为:方法声明部分方法体的内容3.1类与对象3.1.4对象的
4、创建与引用对象的创建与引用1、对象的创建、对象的创建创建一个对象包括对象的声明和为对象分配成员变量两个步骤。创建一个对象包括对象的声明和为对象分配成员变量两个步骤。(1)对象的声明)对象的声明对象声明的一般格式为:对象声明的一般格式为:类的名字类的名字对象名字对象名字;如:如:RectrectangleOne;这里,这里,Rect是一个类的名字,是一个类的名字,rectangleOne是我们声明的对象是我们声明的对象的名字。用类声明的数据称为类类型变量,即对象,如上述的名字。用类声明的数据称为类类型变量,即对象,如上述Rect类声明的对象类声明的对象rectangleOne。3.1类与对象1、
5、对象的创建、对象的创建(2)为声明的对象分配成员变量为声明的对象分配成员变量,即是给变量分配内存空间。使用new运算符和类的构造方法为声明的对象分配成员变量,如果类中没有构造方法,系统会调用默认的构造方法(默认的构造方法是无参数的,你一定还记得构造方法的名字必须和类名相同这一规定),上述的Rect类提供了2个构造方法,下面都是合法的创建对象的语句:rectangleOne=newRect();3.1类与对象l2、对象的引用我们已经知道,当用类创建一个对象时,成员变量被分配内存空间,这些内存空间称做该对象的实体或变量,而对象中存放着引用,以确保这些变量由该对象操作使用。因此,如果两个对象有相同的
6、引用,那么就具有同样的实体。3.1类与对象l3.1.5类的继承与多态类的继承与多态只支持单重继承,不支持多重继承,只能从一个父类继承。l必须从一个类继承默认是从Object继承l如果类Sub是类Super的子类,则类Sub只继承超类Super中非private的成员变量和方法。l子类Sub中,包括两部分的内容:从超类Super中继承下来的变量和方法,自己新增加的变量和方法。3.1类与对象l3.1.5类的继承与多态类的继承与多态继承的语法修饰符class类名extends父类新属性;新方法;重载的方法;覆盖的方法;3.1类与对象l3.1.5类的继承与多态类的继承与多态l多态是指同一个名字的若干个
7、方法,有不同的实现(即方法体中的代码不一样)。l通过方法的重载和覆盖来实现多态性。l方法的重载一个类中,有若干个方法名字相同,但方法的参数不同,称为方法的重载。l不正确的方法重载publicvoidfunover(inta,floatb)publicintfunover(inta,floatb)3.1类与对象l3.1.5类的继承与多态类的继承与多态l对于多态,可以总结它为对于多态,可以总结它为:l(1)使用父类类型的引用指向子类的对象;l(2)该引用只能调用父类中定义的方法和变量;l(3)如果子类中重写了父类中的一个方法,那么在调用这个方法的时候,将会调用子类中的这个方法;(动态连接、动态调用
8、)l(4)变量不能被重写(覆盖),”重写“的概念只针对方法,如果在子类中”重写“了父类中的变量,那么在编译时会报错。3.2抽象类抽象类lJava也可以创建专门的类用来当作父类,这种类称为抽象类(abstractclass)。即用关键字abstract修饰类称为abstract类(抽象类)。抽象类有点类似“模板”的作用,其目的是要你根据它的格式来修改并创建新的类。不能够通过抽象类直接创建对象,只能通过抽象类派生的新的类,再由新类创建对象。3.2抽象类抽象类l在Java中,凡是用abstract修饰符修饰的类称为抽象类。它和一般的类不同之处在于:l(1)如果一个类中含有未实现的抽象方法,那么这个类
9、就必须通过关键字abstract进行标记声明为抽象类。l(2)抽象类中可以包含抽象方法,但不是一定要包含抽象方法。它也可以包含非抽象方法和域变量,就像一般类一样。l(3)抽象类是没有具体对象的概念类,也就是说抽象类不能实例化为对象。l(4)抽象类必须被继承。子类为它们父类中的所有抽象方法提供实现,否则它们也是抽象类。l定义一个抽象类的格式如下:labstractclass类名称ll./类的主体部分ll注意:在抽象类中,方法的定义可分为两种:一种是普通方法;另一种是抽象方法,此方法以abstract开头,且只声明了返回值的数据类型、方法名称、所需参数,但没有方法体。这样,抽象方法中的处理方式必须
10、在子类中完全实现。3.2抽象类抽象类l下面我们通过例子,学习抽象方法的使用。l例例3-11labstractclassfatherClassllabstractvoidabstractMethod();lvoidprintMethod()llSystem.out.println(fatherClassfunction!);lllclasschildClassextendsfatherClassllvoidabstractMethod()llSystem.out.println(childClassfunction!);lllpublicclassmainClassllpublicstaticv
11、oidmain(Stringargs)llchildClassobj=newchildClass();lobj.printMethod();lobjabstractMethod();ll3.2抽象类抽象类l例子运行的结果。l在上面的程序中,首先定义了一个抽象类fatherClass,在这个抽象类中,声明一个抽象方法abstractMethod()和一个非抽象方法printMethod(),接着定义了fatherClass的子类childClass,在childClass中重写了abstractMethod()方法,随后,在主类mainClass中生成类childClass的一个实例,并将该实例
12、引用返回到fatherClass类变量obj中。3.3内部类l类可以有两种重要的成员:成员变量和方法,类还可以有一种成员:内部类。Java支持在一个类中声明另一个类,这样的类称作内部类,而包含内部类的类成为内部类的外嵌类。内部类同类中声明的方法或成员变量一样,一个类把内部类看作是自己的成员。外嵌类的成员变量在内部类中仍然有效,内部类中的方法也可以调用外嵌类中的方法。内部类的类体中不可以声明类变量和类方法。外嵌类可以用内部类声明对象,作为外嵌类的成员l在一个类的内部还可以定义类,这就是内部类,也称为嵌套类。3.3内部类内部类本身是一个类,但它同时又是外部类一个成员。作为外部类的成员,它可以毫无限
13、制地访问外部类的变量和方法,包括private成员。这和private的含义并不矛盾,因为private修饰符只是限制从一个类的外部访问该类成员的权限,而内部类在外部类内部,所以它可以访问外部类的所有资源。3.3内部类3.3.1内部类的分类l静态内部类、l成员内部类、l本地内部类l匿名内部类。3.4匿名类l匿名类是不能有名称的类,所以没办法引用它们。必须在创建时,作为new语句的一部分来声明它们。l这就要采用另一种形式的new语句,如下所示:lnewl这种形式的new语句声明一个新的匿名类,它对一个给定的类进行扩展,或者实现一个给定的接口。它还创建那个类的一个新实例,并把它作为语句的结果而返回
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java中的类与接口 2 Java 中的 接口
限制150内