Java面向对象编程基础.ppt_第1页
Java面向对象编程基础.ppt_第2页
Java面向对象编程基础.ppt_第3页
Java面向对象编程基础.ppt_第4页
Java面向对象编程基础.ppt_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

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

文档简介

第五章 Java面向对象编程基础 类:现实世界中实体的抽象集合。 5.1定义类 定义类的过程就是定义类的属性和服务的 过程; 类的属性就是类的静态属性的简称,指类 内包含的各项数据。 类的服务则被称为成员函数或方法。 类的一般语法结构为: 修饰符 class 类名 extends 父类 implements 接口名 类成员变量声明; 类方法声明; 1.声明类头 类头部分关键字class标志着一个类定义 的开始,class后面跟着新定义类的类名 ,类名由编程者命名,命名原则要遵从 Java对标识符的有关规定,并体现该类 主要功能或作用。 (1)父类名 父类名跟在extends关键字后面,用来说 明当前类是已经存在的哪个类的子类。 这个已经存在的类可以是Java类库中定义 的类,也可以是同一个程序或其他程序 中已定义好的类。 通过定义继承关系,子类可以获得父类的 所有属性和方法。 class Employee/雇员类,包含所有雇员都有的属性 int m_EmpNo;/雇员号 int m_DeptNo;/雇员所在部门号 /一般雇员,有上司编号 class CommonEmployee extends Employee int m_ManagerNo;/上司编号 /主管,有秘书编号 class ManagerEmployee extends Employee int m_SecretaryNo;/秘书编号 (2)接口名 接口名跟在implements关键字后面,用 来说明当前类中实现了哪个接口定义的 功能和方法。 接口是Java语言用来实现多重继承的一种 机制。 (3)修饰符 类的修饰符用来说明类的特殊性质,分为 l访问控制符 l抽象类说明符 l最终类说明符 2.声明类体 类头定义了类的性质,类体则定义了类的具体内容,包 括类的属性和方法。 (1)类的属性 一个类的属性描述了该类内部的信息,又称为类的静态 属性。 类属性为简单变量: 修饰符 变量类型 变量名 =变量初值 类属性为对象的语法: 修饰符 类名 对象名 =new 类名(实际参数列表) 注:若使用另一个类的对象作为当前所定义的类的属性 ,则一定要保证这“另一个类”在当前类中是可见的, 即它可以被当前类所引用。 类属性的修饰符包括: l访问控制符 l静态修饰符static l最终修饰符final l易失修饰符volatile l过渡修饰符transient。 (2)类的方法 类的方法,又称为成员函数,用来规定类属性上 的操作,实现类的内部功能的机制,同时也是 类与外界进行交互的重要窗口。 Java中声明方法的语法: 修饰符 返回值类型 方法名(参数列表) Throws 例外名1,例外名2, 方法体: 局部变量声明; 语句序列; 方法的修饰符包括: l访问控制符 l静态修饰符static l抽象修饰符abstract l最终修饰符final l同步修饰符synchronous l本地修饰符native。 类中定义的方法通常起到两种作用:一是围绕着 类的属性进行各种操作;二是与其他的类或对 象进行数据交流、消息传递等操作。 5.2 创建类的实例对象 创建对象使用关键字运算符new。 类名 对象名=new 类名(参数); 例5.1 5.3 构造函数 构造函数是类的一种特殊方法,它的特殊性主要 体现在如下的几个方面: l构造函数的方法名与类名相同。 l构造函数没有返回类型。 l构造函数的主要作用是完成对类对象的初始化 工作。 在创建一个类的新对象的同时,系统会自动调用 该类的构造函数为新对象初始化。 注:Java在声明类时,可以不定义构造函数,系 统会自动为该类生成一个默认的构造函数。此 时这个构造函数的名字与类名相同,没有任何 形式参数,也不完成任何操作。 5.4 访问控制修饰符 在定义类、属性和方法时,所有修饰符被放在语 句的最前面。 若有一个以上的修饰符同时修饰这个类、属性和 方法,则将这些修饰符并列并用空格互相隔开 。 修饰符1 修饰符N class 类名 修饰符1 修饰符N 数据类型 属性名; 修饰符1 修饰符N 方法返回值类型 方法名 (形式参数列有) 类的访问控制符只有一个public 属性和方法的访问控制符有: public private protected private protected 1.公共访问控制符public 对于同一个包中的类可以不需任何说明而方便地 互相访问和引用。 在不同包中的类,只有它们都声明为public时, 然后再在程序头部声明import后才可以被访问 和引用相应的类。 注:用public修饰的类的属性称为公共属性,如 果公共属性属于一个公共类,则它可以被所有 的其他类所引用。 public修饰符会造成安全性和数据封装性下降, 应尽量减少public属性的使用。 一个类作为整体对程序的其他部分可见,并不能 代表类内的所有属性和方法也同时对程序的其 他部分可见,前者只是后者的必要条件,类的 属性和方法能否为所有其他类所访问,还要看 这些属性和方法自己的访问控制符。 类中被设定为public的方法是这个类对外的接口 部分,程序的其他部分通过调用它们达到与当 前类交换信息、传递消息甚至影响当前类的作 用。 2.缺省访问控制符 缺省访问控制符规定该类只能被同一个包 中的类访问和引用,而不可以被其他包 中的类使用。这种特性又称为包访问性 。 类内的属性和方法如果没有访问控制符来 限定,也说明它们具有包访问性,可以 被同一个包中的其他类所访问和调用。 3.私有访问控制符private 用private修饰的属性或方法只能被该类自 身所访问和修改,而不能被任何其他类 ,包括该类的子类来获取和引用。 当其他类想要获取这些私有成员时,需要 借助于类的方法来实现。 4.保护访问控制符protected 用protected修饰的成员变量可以被三种类 所引用:该类自身、与它在同一个包中 的其他类、在其他包中的该类的子类。 使用protected修饰符的主要作用是允许其 他包中的它的子类来访问父类的特定属 性。 5.私有保护访问控制符private protected Private和protected按顺序连用构成一个完 整的访问控制符:私有保护访问控制符 。 用此修饰符的成员变量可以被两种类访问 和引用:一种是该类本身;二是该类的 所有子类,不管这些子类是否与该类在 同一个包中。 类 属性与方法 public缺省 publicAB protectedB+CB 缺省BB Private protected C+DE+D privateDD 5.5 静态属性、静态方法与静态初始 化器 1.静态属性 被static修饰的属性称为静态属性,这类 属性的一个最本质的特点是:它们是类 的属性,而不属于任何一个类的具体对 象。 静态属性是一个公共的存储单元,任何一 个类的对象访问它时,取到的都是相同 的数值,同样任何一个类的对象去修改 它时,也都是在对同一个内存单元做操 作。 见例ch05/Employee.java 2.静态方法 static修饰符修饰的属性是属于类的公共 属性; 用static修饰符修饰的方法是属于整个类 的方法; 不用static修饰符修饰的方法是属于某个 具体类对象或实例的方法。 声明一个方法的static至少有三重含义: l调用这个方法时,应该使用类名做前缀,而不 是某一个具体的对象名; l非static的方法是属于某个对象的方法,在这 个对象创建时对象的方法在内存中拥有自己专 用的代码段;而static的方法是属于整个类的 ,它在内存中的代码段将随着类的定义而分配 和装载,不被任何一个对象专有; lStatic方法只能处理static类型的数据。 3.静态初始化器 静态初始化器是由关键字static引导的一对大括 号括起的语句组。 静态初始化器与构造函数的三点区别: (1)构造函数是对每个新创建的对象初始化,而 静态初始化器是对每个类进行初始化; (2)构造函数是在用new运算符产生新对象时由 系统自动执行,而静态初始化器则是在它所属 的类加载入内存时由系统调用运行的; (3)不同于构造函数,静态初始化器不是方法, 没有方法名、返回值和参数列表。 5.6 抽象类与抽象方法 1.抽象类 当一个类被声明为abstract时,这个类被 称为抽象类。 所谓抽象类就是没有具体实例对象的类。 抽象类是它的所有子类的公共属性的集合 。 使用抽象类的一大优点就是可以利用这些 公共属性来提高开发和维护程序的效率 。 2.抽象方法 作为类修饰符,abstract声明了一种没有 具体对象的,出于组织概念的层次关系 需要而存在的抽象类。 作为类方法修饰符,abstract则声明了一 种仅有方法头,而没有具体的方法体和 操作实现的抽象方法。 注:具体的实现方法由各个子类来实现。 P111 5.7 最终类、最终属性、最终方法与 终结器 1.最终类 如果一个类被final修饰符所修饰和限定, 说明这个类不可能有子类。 2.最终属性 final就是用来修饰常量的修饰符,一个类 的成员变量如果被声明为final,那么它 的取值在程序的整个执行过程中都不会 改变,也就是一个常量。 用final修饰符说明常量时,需要注意以下 几点: 1)需要说明常量的数据类型; 2)需要同时指出常量的具体取值; 3)因为所有类对象的常量成员,其数值 都固定一致,为了节省空间,常量通常 都被声明为static。 3.最终方法 final修饰符所修饰的类方法,是功能和内 部语句都不能被更改的最终方法。即是 不能被当前类的子类重载的方法。 final方法的作用:固定所对应的具体操作 ,防止子类对父类关键方法的错误的重 定义,保证了程序的安全性和正确性。 注:所有已被private修饰符限定为私有的 方法,以及所有包含在final类中的方法 ,都被缺省地认为是final的。 4.终结器 终结器是回收对象时执行的方法。 protected void finalize() 终结器是一个名为finalize的方法,没有产 生列表和返回值。 5.8 其他修饰符及修饰符的混合使用 1.volatile修饰符 若一个类的属性被volatile所修饰,说明这个属 性可能同时被几个线程所控制和修改。即这个 属性不仅仅被当前程序所掌握,在运行过程中 可能存在其他的未知的程序的操作来影响和改 变该属性的取值,所以在使用当中应该特别留 意这些其他影响因素。 通常,volatile用来修饰受外部输入的属性。 2.native修饰符 native修饰符一般用来声明用其他语言写方法体 并具体实现方法功能的特殊的方法。其他语言 包括C,C+,fortran,汇编等。 由于native的方法的方法体使用其他语言在程序 外部写成,所以所有的native方法都没有方法 体,而用一个分号代替。 在java中使用其他语言编写模块作为类方法,目 的有两个: 一、充分利用已经存在的程序功能模块和避免重 复工作。 二、可以利用native方法来提高运算速度。 3.synchronized修饰符 synchronized修饰符修饰的类方法,如 果是一个类的方法(即static的方法) ,那么在调用执行前,将把系统类 Class中对应当前类的对象加锁; 如果synchronized修饰的是一个对象的 方法(未用static方法),则这个方法 在被调用执行前,将把当前对

温馨提示

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

最新文档

评论

0/150

提交评论