第3章 Java与面向对象编程_第1页
第3章 Java与面向对象编程_第2页
第3章 Java与面向对象编程_第3页
第3章 Java与面向对象编程_第4页
第3章 Java与面向对象编程_第5页
已阅读5页,还剩42页未读 继续免费阅读

下载本文档

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

文档简介

1、第3章 Java与面向对象编程,本章内容提要,面向对象的程序设计方法力求符合人脑的思维方式,通过符合人类思维的更抽象的客观世界模型,降低、分解问题的难度和复杂性,并以此来解决问题。 与结构化的程序设计方法有何区别?,3. 面向对象基础,面向对象的基本原理 面向对象方法学是面向对象程序设计技术的理论基础。该理论的出发点和基本原则,是尽可能模拟人类习惯的思维方式,使开发软件的方法与人类的认知过程同步,通过对人类认识客观世界及事物发展过程的抽象,建立规范的分析设计方法,由此使程序具有良好的封装性、可读性、可维护性、可重用性等一系列优点。,3. 面向对象基础,面向对象的基本概念 1对象 对象就是现实世

2、界中实体在计算机逻辑中的映射和体现。 实体都具有一定的属性和行为。 从面向对象的观点来看,所有的面向对象的程序都是由对象构成的。,3. 面向对象基础,2类 类就是具有相同或相似属性和行为的对象的抽象。 在面向对象的程序设计中,类与对象是抽象与具体的关系。,3. 面向对象基础,3属性 对象的属性主要用来描述对象的状态。 属性用变量来定义。 4行为 对象的行为又称为对象的操作,主要描述对象内部的各种动态信息。 行为用方法来刻画。,3. 面向对象基础,面向对象编程的特点 1封装 封装,就是将事物的内部实现细节隐藏起来,对外提供一致的公共的接口间接访问隐藏数据。 优点:使得Java程序具有良好的可维护

3、性 使得代码的重用性大为提高,3. 面向对象基础,2继承 当一个类拥有另一个类的数据和操作时,就称这两个类具有继承关系。 被继承的类称为父类或超类,继承父类的类称为子类。 继承有单重继承和多重继承之分。 优点:使得面向对象的程序结构清晰,易于理解。,3. 面向对象基础,3.多态 多态指多种表现形式,就是对象响应外部激励而使其形式发生改变的现象。 多态有两种情况: 一种是通过类之间继承导致的同名方法覆盖体现的,另一种是通过同一个类中同名方法的重载体现的。 优点:提高了程序的抽象程度和简洁性。,3. 面向对象基础,类的结构 class extends implements 类体 成员变量定义; 成

4、员方法定义; 在类的声明格式中, 内部的内容表示可选的,可以根据需要有选择的进行编写。,3.2 类,1类的声明 类的声明由修饰符、关键字class、类名、继承父类、实现接口五部分构成。 例如: class Student /定义类Student int stu_name; /定义类属性 stu_name; ,3.2 类,(1)继承父类 关键字extends表示当前类是已经存在的某个类的子类。 Java语言中只允许单一继承。 类通常不需要从头生成。他们可以从其他的类派生而来,继承祖先类的可用类成员。即使是从头创建的新类也必须继承Object类。,3.2 类,(2)实现接口 关键字implemen

5、ts表示当前类实现了某个接口定义的功能或方法。 接口是和类相似一种Java程序的基本单元,是Java程序用来实现多重继承的一种特殊机制。,3.2 类,(3)修饰符,3.2 类,2.类体 class 通常,Java中把成员变量放在方法前面定义。,3.2 类,成员变量 在类体中并且在方法之外定义的变量称为成员变量。 修饰符 变量类型 变量名; 例如: Integer stuAge; int age = 9;,3.2 类,1访问控制权限 public、private及protected 2静态变量修饰符 又被称为类变量,静态变量用关键字static表示。 3常量修饰符 指在程序中不能被改变的变量,常

6、量用关键字final表示。,3.2 类,成员方法 1方法定义 方法也由两部分组成,即方法头和方法体。 ()throws ,3.2 类,(1)方法修饰符 方法修饰符控制方法在什么条件下使用以及如何使用,包括public(公有的)、private(私有的)及protected(保护的)。 (2)返回值类型 返回值类型可以是基本数据类型、应用类型(引用类型)以及void(空类型)。,3.2 类,(3)方法名 (4)形参列表 形参列表是以“,”分开的、参数的数据类型和变量名的列表。 (,) (5)throws 方法的异常列表定义了可能抛出的各种异常。,3.2 类,2方法体 方法的功能实现部分,主要由局

7、部变量和语句构成。 方法体也可以是空的,即没有任何变量和语句。 例如: void setName(String name) 例3-1方法的定义,3.2 类,构造方法 (1)构造方法的方法名与类名相同。 (2)构造方法不允许声明返回值。 (3)构造方法的作用是完成对类对象的初始化。 (4)构造方法只能通过new运算符调用,不能通过 对象或类调用。 (5)一个类可以定义多个构造方法。,3.2 类,例3-2构造方法的定义 构造方法的作用: (1)为每个新建的对象赋初始值,从而保证每一个新建的对象处于合理正常的状态。 (2)引入更多的灵活度,使得初始化工作不仅仅包括成员变量的赋值,还可以有更复杂的操作

8、。,3.2 类,对象创建 1声明对象 type objectname; 例如: Student xiaolin;,3.3 对象,xiaolin,2建立对象并初始化 实际上就是将一个类实例化,这是通过new关键字来完成的。 例如: new Student(小林,1001,12);,3.3 对象,对象引用被赋值后,将指向一个真正的对象,即对象引用的内存空间中存储这个新建立对象的内存空间的首地址,那么通过对象引用就可以访问这个对象的所有可以访问的成员了。,3.3 对象,通过同一个类模板可以声明多个对象引用,也可以建立并初始化多个对象: Student xiaolin , xiaofei; xiaol

9、in = new Student(小林,1001,12); xiaofei = new Student(小飞i,1002,16); Student xiaoqiang = xiaolin;,3.3 对象,例3-3创建对象 判断对象a的引用是否存在a!= null或 a=null; 判断a、b两个对象的引用是否相等a=b; 判断a、b两个对象的值是否相等 a.equals(b)。,3.3 对象,使用对象 有两种方式使用对象: 一是通过对对象变量的引用来使用对象; objectRenference.variable; 二是通过调用对象的方法来使用对象。 objectRenference.metho

10、dName(paramlist);,3.3 对象,例3-4使用对象,3.3 对象,姓名:王非 学号:10011 学院编号:11 姓名:黎明 学号:10012 学院编号:12,释放对象 Java中,对象使用的内存空间的释放是自动完成的,不需要在编码时考虑对象的释放问题。Java运行系统具有所谓的“垃圾回收机制”,垃圾回收器(garbage cllectors,GC)在后台运行,定时查看所有对象,识别那些不再被引用的对象(垃圾),给予释放,回收分配给这些对象的内存。,3.3 对象,对象引用与对象实体 对象引用和对象实体是相互独立的。 例3-5通过对象引用遥控对象实体,3.3 对象,学生: 小明 学

11、生: 小明 学生: 小强 学生: 小强 null,为了更好的管理这些类,Java引入了包的概念。 包是一种类似于文件夹的一种组织形式,包把各种类组织起来,一方面对类的命名空间进行管理,另一方面作为隐含的访问控制修饰符,是信息隐藏和封装的有力工具。,3.4 包,包的概念 为了方便管理,通常将需要在一起工作的类放在一个包中。只要包名是惟一的,那么包中的类就有了惟一的类全名。 包的引入解决了类名冲突问题。 包是一种多层次的组织结构,其成员有子包、类和接口。,3.4 包,创建包 创建包需要使用关键字package,其一般的格式和语法为:package 包名; 这条语句必须位于源文件的第一行,并且在同一

12、个源文件中只能编写一条package语句。 例如: package newpackage; package society.family; 例3-7创建包,3.4 包,导入包 1使用类全名 例3-8使用类全名,3.4 包,A0 100 10 A1 101 11 A2 102 12 A3 103 13 A4 104 14,2导入需要的使用的类 利用import关键字,将需要使用的类导入到当前程序中, 例3-9导入需要的类,3.4 包,3导入整个包 包中的所有的类都被加载到当前文件中。 例如: import schools.*; 所有的Java程序自动导入java.lang包,因此,import

13、java.lang.*语句可以省略不写。另外编译器在查找需要的类时有特定的查找顺序,先是Java基本类库中的类,后是用户自定义的类。,3.4 包,Java有四种类成员的访问控制形式,分别为缺省的(默认的)、公有的、保护的、私有的。 类的每个成员都有自己的访问修饰符,但最多只能使用一个访问修饰符,并且访问修饰符必须放在其他修饰符之前。 如果类不可访问,则其成员也不可访问,因此讨论类成员的访问控制的前提必须是类是可访问的。,3.5 类成员的访问控制权限,1private修饰符 private修饰的成员变量和方法仅能在其类的方法中被访问,其他类无法直接访问。 【例3-10】私有成员的定义和使用,3.

14、5 类成员的访问控制权限,false xiaoming:1000 xiaoming:1001,2无修饰符 如果成员没有指定任何访问修饰符,则表示该成员具有缺省的访问权限, 3protected修饰符 protected修饰符表示成员的访问权限局限在同一个包的其他类以及其子类(可以属于其他包)中。,3.5 类成员的访问控制权限,4public修饰符 public修饰符表示类成员公用的。 为了使程序具有良好易读的风格,建议最好在编写类代码时用不同的可访问性来组织类成员,并将public成员作为对外公布的接口放在最前面,以便引起关注。,3.5 类成员的访问控制权限,类变量 被所有的类的所有实例共享的变量称为类变量(class variable),类变量用修饰符static描述。 例3-11类变量的定义,3.6 数据共享,1 2 2,类变量的访问 类变量不依赖于对象。 例3-12直接通过类名访问类变量,3.6 数据共享,1 2 2 2,类方法 类方法(class m

温馨提示

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

评论

0/150

提交评论