java面向对象程序设计.ppt_第1页
java面向对象程序设计.ppt_第2页
java面向对象程序设计.ppt_第3页
java面向对象程序设计.ppt_第4页
java面向对象程序设计.ppt_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

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

文档简介

第4章 面向对象程序设计,本章学习目标,面向对象程序设计的基本思想 面向对象程序设计的基本概念 面向对象程序设计的特征 面向对象程序设计的基本方法 Java面向对象程序设计的基本实现,4.1 面向对象的基本概念,4.1.1 对象 在面向对象的程序设计中,对象是具有属性和操作的实体。属性又称为状态,操作又称为方法或行为。,4.1.2 消息,对象之间进行交互作用和相互联系是通过消息传递来实现的。消息用来请求对象来执行某一处理或回答某些信息的请求,一个对象在执行相应的处理时,根据需要可以通过传递消息来请求其他对象完成某些处理工作或回答某些信息。其他对象在执行所要求的处理活动时,同样也可以通过传递消息与另外的对象联系。所以,程序的执行是靠在对象之间传递消息来完成的。,4.1.3 类,在面向对象的系统中,引入类的概念,统一刻画描述具有相同结构、相同行为特点(也即操作)的对象集合。类是对具有相似行为的对象的一种抽象,描述了属于该类型的所有对象的性质。因此,对象指的就是类的实实在在的一个例子,称为实例。,4.1.4 面向对象的基本特征,1封装性 2继承性 3多态性,4.2 类和对象,4.2.1 类的声明和类成员,4.2.2 方法重载,重载方法是那些位于同一个类中同名但具有不同参数列表的方法。重写方法是那些既存在于超类中又存在于子类中的方法。 重载方法采取编译时多态性形式,而重写方法采取运行时多态性形式。,4.2.3 构造方法与对象的创建,构造方法是一种特殊的方法,它没有返回类型并且与类具有相同的名称。一般来说,每个类通过定义构造方法来初始化它的成员变量。 在创建对象时,它的构造方法被自动调用。如果类中没有定义构造方法,则编译器向该类提供默认的构造方法。,4.2.4 修饰符static,static修饰符可以与变量、方法一起使用。类中的静态变量、方法完全独立于该类的任何对象,并不具体到实例。如果一个成员被声明为static,它就能够在它的类的任何对象创建之前被访问,而不必引用任何对象,它们可以与类的名称一起使用,而无需创建类的对象来访问类的静态成员。,4.2.5 关键字this,“this”关键字与对象关联,格式为:this.对象。它代表“这个类”或“当前正在使用的类”。this可以在引用当前对象的所有方法内使用,也就是,this总是调用该方法对象的一个引用。,4.3 继承,4.3.1 类继承概述 可以创建一个通用类,它定义一系列相关项目的共同特性。该类可以被更具体的类继承,每个具体的类都增加一些自己特有的东西。被继承的类称为父类,继承父类的类称为子类。,4.3.2 类继承的实现,声明一个继承父类的类,一般格式如下: class subclass_name extends superclass_name /类体的定义; ,4.3.3 成员变量的隐藏和方法的重写,在类的层次结构中,如果子类中的一个方法与父类中的方法有相同的名称并且具有相同数量和类型的参数列表,则子类中的此方法将替代父类中该方法的定义。这称为子类中的方法重写或覆盖(override)了父类中的方法。,4.3.4 关键字super,Java提供了super关键字来解决如何直接访问或初始化从父类继承过来的属性。一个子类需要引用它的直接父类,可以用关键字super来实现。 Super有两种通用的形式。第一种是调用父类的构造函数,第二种是用来访问被子类的成员覆盖的父类成员。 super关键字最常用在对象的构造函数中,将构造细节通过继承链往上传递。子类可以调用父类中定义的构造函数。其格式如下: super (paramter-list); 其中,parameter-list定义了父类中构造函数所用到的所有参数列表。,4.3.5 修饰符final,1fianl类:当一个类被声明为final时,表明该类不能被继承。 2fianl方法:声明为final的方法不能被重写 。 3fianl变量:声明为final变量后只能被初始化一次然后就不能对其值进行修改。声明为final的变量在实例中不占用内存,这样一个final变量实质上是一个常量。,4.4 抽象类,如果我们需要定义一个父类,此父类能为其子类声明结构却不能为方法定义有意义的实现过程。也就是说,有时我们需要创建一个父类,此父类只定义可被其所有子类共享的一般形式,而让子类来补充细节。这种类就是抽象类。,4.4.1 抽象类的声明,abstract class 类名 /抽象类的实现代码 ,4.4.2 抽象类的使用,如果一个类是抽象类,就不能创建这个类的对象,也就是说,一个抽象类不能通过new操作符直接实例化,必须使用继承的方法来访问抽象类中的成员。换句话说,抽象类的作用就是用来继承。 继承抽象类的类必须在类中实现抽象类中的抽象方法,即给出抽象方法的定义。,4.5 接口,Java不支持多重继承,因为多重继承会引起难以预测的冲突。但鉴于多重继承的重要性,Java使用了接口技术来实现多重继承。,4.5.1 接口的声明,access interface name type final-varname1 = value; type final-varname2 = value; type final-varname3 = value; return-type method-name1(parameter-list); return-type method-name2(parameter-list); return-type method-name3(parameter-list); / ,4.5.2 接口的实现,接口被定义后,一个或多个类可以实现该接口。为了实现一个接口,在类的定义中使用implements关键字,然后创建接口定义的方法。格式如下: access class class-name extends super-class implements interface-name1 ,interface-name2, /class-body ,4.5.3 接口的继承,类可以继承实际上是实现implements接口,接口也可以继承其他接口。接口的继承也使用extends关键字,如果继承多个接口,则继承的接口之间用逗号分隔。 下面是一个接口的多重继承的代码: interface interfaceExample extends interfaceExample1, interfaceExample2 int a = 12; void func(); ,4.6 包,为了避免名称冲突,每个类都必须使用唯一的名称加以标识。Java提供了把类名空间划分为更加容易管理的块的机制,这种机制就是包。从本质上,包是将类组合在一起形成组的一种手段。,4.6.1 包的创建,要创建一个包只要在Java源程序文件中使用package语句,并且该语句必须是源程序的第一条语句就可以了。该文件中定义的任何类都属于指定的包。格式如下: package 包名;,4.6.2 包的引用,import package-name.*; 字符“*”表示导入package-name 名称的包中的所有类和接口。 要包括包中一个特定的类或接口,语句格式如下: import package-name.class-name;,4.6.3 访问权限,4.7 内部类,内部类是重要的一种嵌套类的的类型。内部类是非静态的嵌套类。在类中定义的类称为内部类,内部类之外的类称为外部类。内部类可以访问它的外部类的所有变量和方法,并能够以和外部类的其他静态成员相同的方式直接引用它们,这样,一个内部类就完全在其包围类的范围之内。,4.8 匿名类,匿名类就是没有指定名称的类。匿名内部类有利于编写事件处理程序。,4.9 基本数据类型的类包装,字符:Java中的字符采用Unicode编码。 数字类 日期类,4.10 JAR文件,JAR的英文全称是Java ARCHIVE,中文叫做Java归档,JAR是一种与平台无关的文档格式。它是一种压缩文件,可以压缩任意格式的文件。JAR文件可以将一个类包压缩为一个文件使用,经过压缩后的类文件体积更小,可以方便在网络特别是Interne

温馨提示

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

评论

0/150

提交评论