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

下载本文档

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

文档简介

东营职业学院计算机系网络教研室 第 页 共 21 页 1 第第4 4章章 面向对象程序设计面向对象程序设计 -类和对象类和对象1 1 教学目标: 掌握类和对象的概念,熟悉类的定义、 实现,熟悉对象的创建和使用。 教学重点: 类和对象的基本概念及认识。 教学难点: 面向对象编程思想的确立。 东营职业学院计算机系网络教研室 第 页 共 21 页 2 v 类和对象的关系就是共性和个性的关系,由于许多 对象常常具有一些共性,因此将这些共性抽象出来,就 成为了类。通过创建类的一个实例来创建该类的一个对 象,通过赋予各个对象不同的值来实现各对象不同的个 性。 面向对象概念面向对象概念 不同的物体可能有相同的特征,如两个人都有人的特 征,两辆汽车都有汽车的特征等。把一类对象的共性抽象 出来,形成一个模型就是类。所以类是一组具有相同特性 的对象的抽象化模型。 例如,所有的人具有相同的特征,可以抽象化为“人 ”类,我们每一个具体的人,就是“人”类中的一个实例 ,即一个对象。 东营职业学院计算机系网络教研室 第 页 共 21 页 3 面向对象概念面向对象概念 一、面向对象编程(OOP,Object Oriented Programing)的思想 (1)(1)现实世界的一切事物都是对象。现实世界的一切事物都是对象。 (2)(2)对象一般都有两个特征对象一般都有两个特征: :属性属性(property)(property)和和行为行为(behavior)(behavior) 。 (4)(4)类本身是不存在的,是抽象的,而对象是具体的,实类本身是不存在的,是抽象的,而对象是具体的,实 实在在的。实在在的。 (3)(3)类:具备相同属性和行为的一组对象的集合类:具备相同属性和行为的一组对象的集合 。 类和对象的关系可以这样理解: 把具有相同特征的对象的这种相同的特征(包括属性和 行为)抽象化就是类; 把类实例化就是对象。 东营职业学院计算机系网络教研室 第 页 共 21 页 4 一、面向对象编程(OOP,Object Oriented Programing)的思想 东营职业学院计算机系网络教研室 第 页 共 21 页 5 v man class中包含有: 属性:name /名字 sex /性别 age /年龄 address /住址 company /公司 方法:eatfood() /吃饭 sleep() /睡觉 study() /学习 work() /工作 这些显示的是类的属性 是类的静态特征 表现为对象的状态 这些是类的方法 是类的行为特征 表现为对象的行为 将对象进行抽象为类 将类进行实例化 类(CLASS) 为 ”man class” 东营职业学院计算机系网络教研室 第 页 共 21 页 6 类和对象的比较 n类是一个定义一个 对象的属性和行为 并且在设计的时候 产生的模板或蓝图 n一个对象是一个关于 类的运行实例,它占 用内存并且拥有一定 的生命周期 123 245 12 245 东营职业学院计算机系网络教研室 第 页 共 21 页 7 二、类 类描述了同一类对象都具有的数据和行为。Java语言中 的类将这些数据和行为进行封装,形成了一种复合数据类 型。创建一个新类,就是创建了一种新的数据类型。 在程序中,类只定义一次,而用new运算符可以实例化同 一个类的一个或多个对象。 类有两种基本成分,即数据和方法。 类的数据称为数据成员,可以是基本类型的变量或数组, 也可以是类的实例; 方法用于处理该类的数据成员。方法与C/C+中的函数很相 似,具有名称、参数、方法体、返回值等,它们区别在于 方法是类的成员,只能在类内定义。 东营职业学院计算机系网络教研室 第 页 共 21 页 8 4.1 类声明和类体 类是组成Java程序的基本要素。类封装了一类对象的 状态和方法。类是用来定义对象的模板。可以用类创 建对象,当使用一个类创建了一个对象时,我们也说 给出了这个类的一个实例。 在语法上,类由两部分构成:类声明和类体。基本 格式为: class 类名 类体的内容 8 东营职业学院计算机系网络教研室 第 页 共 21 页 9 class是关键字,用来定义类。“class 类名”是类 的声明部分,类名必须是合法的Java标识符。两个大 括号“”、“”以及之间的内容称作类体。 以下是两个类声明的例子。 class Dog class 机动车 9 东营职业学院计算机系网络教研室 第 页 共 21 页 10 类的名字不能是Java中的关键字,要符合标识符规 定,即名字可以由字母、下划线、数字或美元符号组 成,并且第一个字符不能是数字。但给类命名时,最 好遵守下列习惯: (1)如果类名使用拉丁字母,那么名字的首字母使 用 大写字母,如Hello、Time、,People 等。 (2)类名最好容易识别、见名知意。当类名由几个 “单词”复合而成时,每个单词的首写字母使用大写 ,如BeijingTime、AmericanGame、HelloChina等。 返回 10 东营职业学院计算机系网络教研室 第 页 共 21 页 11 4.2 类体的构成 一、类体内容可以有2种类型的成员: 1属性:通过变量来声明属性,又称作成员变量或 域,用来刻画类创建的对象的属性。将在后面的第3节 详细地讨论成员变量。 2方法:方法是类体的重要成员之一。其中的构造 器是具有特殊地位的方法,供类创建对象时使用,用 来给出类所创建的对象的初始状态,另一类方法,可 以由类所创建的对象调用,对象调用这些方法操作成 员变量形成一定的算法,体现对象具有某种功能。 11 东营职业学院计算机系网络教研室 第 页 共 21 页 12 下面是一个类名为“机动车”的类,类体内容的变量 定义部分定义了2个float类型的变量:“weight”、 “height”和一个int型变量“speed”;方法定义部 分定义了3个方法:“changSpeed”、“getWeight” 和“getHeight”。 成员变量的类型可以是Java中的任何一种数据类型 ,包括前面学习过的基本类型:整型、浮点型、字符 型、数组以及后面要学习的对象及接口。 成员变量在整个类内都有效,与它在类体中书写的 先后位置无关,例如,前述的机动车类也可以写成: 12 东营职业学院计算机系网络教研室 第 页 共 21 页 13 在定义类的成员变量时可以同时赋予初值,表明类所 创建的对象的初始状态。需要注意的是,对成员变量 的操作只能放在方法中,方法可以对成员变量进行操 作形成算法,如: 但是不可以这样做:因为,a=12是 赋值语句,不是数据的声明。类的成员类型中可以有 数据和方法,即数据的定义和方法的定义,但没有语 句,语句必须放在方法中。 返回 13 东营职业学院计算机系网络教研室 第 页 共 21 页 14 vclass Rectangle v v/定义属性,表示矩形的长和宽 vint length=1; vint width=1; v/定义方法,求矩形面积 v public int area() v vint temp=length*width; vreturn temp; v v v 例1: 东营职业学院计算机系网络教研室 第 页 共 21 页 15 v例2:关于类定义的例子 定义一个汽车类(它的属性如颜色、车速等;操纵汽 车的方法如起步、加速、减速、停车等) class Car String color;/颜色 int speed; /车速 void start(int spd) spd=speed; void addspeed(int addval) speed+=addval; void subspeed(int subval) speed-=subval; void stop() speed=0; public static void main(String args) 东营职业学院计算机系网络教研室 第 页 共 21 页 16 【例3】声明了一个类MyCircle的一些成员变量。 vpublic class MyCircle vint r; vdouble area() vdouble area=3.14*r*r; v return area; v 结论: 类的成员变量必须在类主体内声明, 且不能包括在方法体中。 东营职业学院计算机系网络教研室 第 页 共 21 页 17 二、 类的成员变量 (1)成员变量的声明 成员变量完整的声明格式如下: public|protected|privatestaticfinaltransientvolatile type variableName; v其中修饰符public、protected、private说明了对该对象成员变量的 访问权限;其他的修饰符如下: vstatic属性用来限制该成员变量为类变量,表示它们可被类的所有对 象共享。没有用static修饰的成员变量为实例变量; vfinal用来声明一个常量,对于用final限定的常量,在程序中不能修 改它的值; vtransient用来声明一个暂时性变量,在默认情况下,类中所有变量 都是对象永久状态的一部分,当对象被保存到外存时,这些变量必须 同时被保存;用transient限定的变量则指示Java虚拟机,该变量并 不属于对象的永久状态,从而不能被永久存储。 vvolatile表示该变量有可能被多个线程所改变,提示编译器不应该将 该变量优化,这可避免读到不正确的值。 东营职业学院计算机系网络教研室 第 页 共 21 页 18 二、 类的成员变量 (2)静态变量 v Java变量可分为两种类型,一种是“成员变量 ”(member-variable),另一种是“非成员变量 ”(non-member-variable),即局部变量。这两种变 量都位于Java类内,只不过是是非成员变量非成员变量还必须位位 于于类内的方法方法中。 v Java的成员变量如果使用static这个关键字又可 称为“类变量”(class-variable),即静态变量 。 东营职业学院计算机系网络教研室 第 页 共 21 页 19 【例4】表示类变量和实例变量的区别。 class A static String a; /类变量(静态变量) String b; /实例变量 public class Test public static void main(String args) A obj1=new A(); /类A的对象1 / A obj2=new A(); /类A的对象2 /在此代码中如果给a赋值那么,obj1.a 和obj1.a指的是同一个 内存空间,无论那个对象修改都是对一个a进行操作 结论: 每个对象的实例变量都分配内存,通过该对象来访问这些实例变量 ,不同的实例变量是不同的。如变量b 类变量是与类相关联的数据变量,也就是说,类变量是和该类所创建 的所有对象相关联的变量,改变其中一个对象的这个类变量就同时改 变了其它对象的这个类变量。类变量仅在生成第一个对象时分配内存,所 有实例对象共享同一个类变量,每个实例对象对类变量的改变都会影响到其它 的实例对象。如变量a a obj1 obj2 b b obj1 obj2 a和b在内存中空间的配置 东营职业学院计算机系网络教研室 第 页 共 21 页 20 二、 类的成员变量 (3)常量 v final变量就是平时所说的常量,也就是最后值,无法再被修改。当 一个变量被设置为final变量时,它的内容值就被固定下来了不能再修改 。 【例5】final变量常见的用法实例 class Tom final int MAX=100; static final int MIN=20; class Example public static void main(String args) System.out.println(Tom.MIN); Tom t=new Tom(); int x=0; x=Tom.MIN+t.MAX; System.out.println(x); 东营职业学院计算机系网络教研室 第 页 共 21 页 21 三、创建对象 创建一个对象包括三个步骤: 声明对象 实例化对象 初始化对象 1、声明对象 声明对象的名字和类型,用类名来说明对象的类型 格式:类名 对象名 说明:对象声明并不创建新的对象 例:Rectangle obj

温馨提示

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

评论

0/150

提交评论