[工学]基础班之面向对象

上传人:tia****nde 文档编号:70854273 上传时间:2019-01-18 格式:PPT 页数:62 大小:1.42MB
返回 下载 相关 举报
[工学]基础班之面向对象_第1页
第1页 / 共62页
[工学]基础班之面向对象_第2页
第2页 / 共62页
[工学]基础班之面向对象_第3页
第3页 / 共62页
[工学]基础班之面向对象_第4页
第4页 / 共62页
[工学]基础班之面向对象_第5页
第5页 / 共62页
点击查看更多>>
资源描述

《[工学]基础班之面向对象》由会员分享,可在线阅读,更多相关《[工学]基础班之面向对象(62页珍藏版)》请在金锄头文库上搜索。

1、 2011 79 IT教育. All rights reserved.,柒玖计算机科技有限公司,j2se基础课,主讲:姓名 时间:时间, 2011 79 IT教育. All rights reserved.,面向对象概念, 2011 79 IT教育. All rights reserved.,面向对象的思想已经涉及到软件开发的各个方面。 了解几个名词: 面向对象的分析(OOA,Object Oriented Analysis) 面向对象的设计(OOD,Object Oriented Design) 面向对象的编程实现(OOP,Object Oriented Program),一. 面向对象概念

2、, 2011 79 IT教育. All rights reserved.,一. 面向对象概念,面向对象的几个主要概念: 对象 属性、方法 抽象、封装 类 封装性 继承性 多态性, 2011 79 IT教育. All rights reserved.,一. 面向对象概念,面向过程,在一个结构体中定义窗口的大小,位置,颜色,背景等属性就可以,如果我们要对一个Windows窗口进行各种操作,如隐藏窗口,移动窗口,最小化窗口等等,我们要为每个操作都定义一个函数,这些函数与窗口本身的定义没有任何关系,如HideWindow,MoveWindow,MinimizeWindow,这些函数都需要接受一个代表要

3、被操作的窗口参数 ,是一种谓语与宾语的关系 。面向过程主要针对谓语。, 2011 79 IT教育. All rights reserved.,一. 面向对象概念,面向过程,从学校到公司,上车 系安全带 打开发动机,踩离合,挂档 踩油门 一路狂奔 到公司, 2011 79 IT教育. All rights reserved.,一. 面向对象概念,面向对象,定义窗口时,除了要指定在面向过程中规定的那些属性,如大小,位置,颜色,背景等外,还要指定该窗口可能具有的动作 ,如隐藏,移动,最小化等。我们在定义窗口时,就要定义好对应这些动作的函数(也叫方法),如Hide,Move,Minimize,这些函数

4、被调用时,都是以某个窗口要隐藏,某个窗口要移动的语法格式来使用的 ,这是一种主语与谓语的关系。面向对象主要针对主语。, 2011 79 IT教育. All rights reserved.,一. 面向对象概念,面向对象,从学校到公司,我要去公司,我直接叫师傅开车 车具体是怎么开的,我不关心,能到公司就OK。 把信息封装在车这个类的内部 不去了解车整个开动的过程, 2011 79 IT教育. All rights reserved.,对象(Object),对象是面向对象技术的核心。 面向对象技术中的对象就是现实世界中某个具体的物理实体在计算机逻辑中的映射和体现。 比如:电视是一个具体存在的,拥有

5、外形、尺寸、颜色等外部特性和开、关、设置等功能的实体;而这样一个实体,在面向对象的程序中,就可以表达成一个计算机可理解、可操纵、具有一定属性和行为的对象。, 2011 79 IT教育. All rights reserved.,对象(Object),对象(Object),对象是客观存在的实体。 eg: one person a car a cat a database a document ., 2011 79 IT教育. All rights reserved.,对象(Object),对象属性(Attribute): 定义:对象内凡是可以描述自身状态、性质的数据名称的总和,它主要指对象内部所

6、包含的各种信息,也就是变量。 每个对象个体都具有自己专有的内部变量,这些变量的值表明了对象所处的状态。当对象经过某种操作和行为而发生状态改变时,具体地就体现为它的属性变量的内容的改变。通过检查对象属性变量的内容,就可以了解这个对象当前所处于的状态。, 2011 79 IT教育. All rights reserved.,对象(Object),对象方法(Method):对象在外力作用下而产生的可以改变其部分或全部属性值的动作行为的总和称为方法。对象的方法可以是单独的、分立的动作,也可以是一个过程。如阀门的开和关等。,Brake SpeedUp SlowDown, 2011 79 IT教育. Al

7、l rights reserved.,类(class),类也是面向对象技术中一个非常重要的概念。简单地说,类是同种对象的集合与抽象。 为了处理问题的方便,在面向对象的程序设计中定义了类的概念来表述同种对象的公共属性和特点。从这个意义上说,类是一种抽象的数据类型,它是具有一定共性的对象的抽象,而属于类的某一对象则被称为是类的一个实例,是类的一次实例化的结果。, 2011 79 IT教育. All rights reserved.,类(class),类(class):,类是具有共同特征 的对象的抽象。 eg: Person Car Cat Database Document ., 2011 79

8、IT教育. All rights reserved.,类(class),类是对某一类事物的描述,是抽象的、概念上的定义;对象是实际存在的该类事物的每个个体,因而也称实例(instance)。,如果将对象比作汽车,那么类就是汽车的设计图纸。所以面向对象程序设计的重点是类的设计,而不是对象的设计。, 2011 79 IT教育. All rights reserved.,面向对象, 2011 79 IT教育. All rights reserved.,1.1 类的定义,class Person int age; void shout() System.out.println(“oh,my god!

9、I am “ + age); ,age是类的属性 ,也叫类成员变量 。 shout是方法也叫类的成员函数。 shout方法可以直接访问同一个类中的age变量 。, 2011 79 IT教育. All rights reserved.,1.1 类的定义,class Person int age=5; /这是一个成员变量 public void shout() int age = 20; /这是一个局部变量 System.out.println(“oh,my god! I am “ + age); public class PersonTest public static void main(St

10、ring args) Person p1 = new Person(); p1.shout(); 问题:最后输出的age是多少?,注意:,如果一个方法中有与成员变量相同的局部变量,该方法对这个变量名的访问是局部变量,而不再是成员变量。, 2011 79 IT教育. All rights reserved.,Person p1 = new Person();执行完后的内存状态,1.2. 对象的产生和使用, 2011 79 IT教育. All rights reserved.,当一个对象被创建时,会对其中各种类型的成员变量自动进行初始化赋值。除了基本数据类型之外的都是变量类型都是引用类型。,1.2

11、. 对象的产生和使用, 2011 79 IT教育. All rights reserved.,1.2. 对象的产生和使用,创建新的对象之后,我们就可以使用“ 对象名.对象成员 ”的格式,来访问对象的成员(包括属性和方法) class TestPerson public static void main(String args) Person p1 = new Person(); Person p2 =new Person(); p1.age = -30; p1.shout(); p2.shout(); , 2011 79 IT教育. All rights reserved.,1.3. 对象的比

12、较,问题:输出的结果是什么?,str1 != str2 str1 = str3, 2011 79 IT教育. All rights reserved.,1.3. 对象的比较,问题:输出的结果是什么?,str1 equal str2 str1 equal str3, 2011 79 IT教育. All rights reserved.,1.3. 对象的比较,“=”运算符与equals()方法的区别, 2011 79 IT教育. All rights reserved.,1.4. 匿名对象,创建对象,在调用时也可以不定义对象的引用,而直接调用这个对象的方法。这样就叫做匿名对象,把前面的Person

13、程序代码: Person p1 = new Person(); p1.shout(); 改写成: new Person().shout();, 2011 79 IT教育. All rights reserved.,1.4. 匿名对象,使用匿名对象的两种情况: 如果对一个对象只需进行一次方法调用,则就可以使用匿名对象。 将匿名对象作为实参传递给一个函数调用,比如程序中有一个 getSomeBody的方法: public static void getSomeBody(Person p) 那么我们就可以这样调用: getSomeBody(new Person();, 2011 79 IT教育. A

14、ll rights reserved.,1.5. 类的封装性,如果外面的程序可以随意修改一个类的成员变量,会造成不可预料的程序错误,就象一个人的身高,不能被外部随意修改,只能通过各种摄取营养的方法去修改这个属性。 在定义一个类的成员(包括变量和方法)时,使用private关键字说明这个成员的访问权限,这个成员成了类的私有成员,只能被这个类的其他成员方法调用,而不能被其他的类中的方法所调用。, 2011 79 IT教育. All rights reserved.,1.5. 类的封装性, 2011 79 IT教育. All rights reserved.,1.5. 类的封装性,为了实现良好的封装

15、性,我们通常将类的成员变量声明为private,再通过public的方法来对这个变量进行访问。对一个变量的操作,一般都有读取和赋值操作,我们分别定义两个方法来实现这两种操作,一个是getXxx()(Xxx表示要访问的成员变量的名字),用来读取这个成员变量操作,另外一个是setXxx()用来对这个成员变量赋值。, 2011 79 IT教育. All rights reserved.,1.5. 类的封装性, 2011 79 IT教育. All rights reserved.,1.5. 类的封装性,类的封装所带来的优点:,隐藏类的实现细节; 让使用者只能通过事先定制好的方法来访问数据,可以方便地加

16、入控制逻辑,限制对属性的不合理操作; 便于修改,增强代码的可维护性;, 2011 79 IT教育. All rights reserved.,1.5. 类的封装性,一个类通常就是一个小的模块,我们应该让模块仅仅公开必须要让外界知道的内容,而隐藏其它一切内容。我们在进行程序的详细设计时,应尽量避免一个模块直接修改或操作另一个模块的数据,模块设计追求强内聚(许多功能尽量在类的内部独立完成,不让外面干预),弱耦合(提供给外部尽量少的方法调用)。用总统指挥一支军队的例子来说明这种效果。, 2011 79 IT教育. All rights reserved.,1.5. 类的封装性,编程试验:我们在一个类中定义了一个private类型的成员变量,接着产生了这个类的两个实例对象,请问第一个对象的方法中,能否以“第二个对象.成员”的格式访问第二个对象中的那个private成员变量?, 2011 79 IT教育. All rights rese

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号