类与对象的基本概念.ppt
《类与对象的基本概念.ppt》由会员分享,可在线阅读,更多相关《类与对象的基本概念.ppt(45页珍藏版)》请在三一文库上搜索。
1、类与对象的基本概念,类与对象 对象初始化 方法的使用 类的组织 访问控制 常用工具类 小结,类与对象,什么是对象 对象是现实世界中存在的事物,“万事万物皆对象”。 每个对象是构成现实世界的一个独立的单位,具有自己的静态特征(状态)和动态特征(行为)。 程序中对象就是一组变量和相关方法的集合,其中变量表明对象的状态,方法表明对象所具有的行为。 例如,人(Person)、顾客(Customer)、银行帐号(Bank account)、钟表(Clock)及生日(BirthDate)都可以看成是现实生活中的对象,他们具有的状态及行为如表3-1所示。,类与对象,现实世界中的对象程序中的类 我们称现实世界
2、中具有相同静态特征和动态特征的所有对象为“一类对象”,对某类对象进行抽象可以形成类(class)。 在抽象的过程中我们会在该类对象的所有静态特征和动态特征中进行取舍,只抽取对我们“有用的”特征并在Java的类中加以描述。 class Person String name; int age; char gender; void eat( ) void sleep ( ) ,类与对象,什么是类 可以将现实生活中的对象经过抽象,映射为程序中的对象。对象在程序中是通过一种抽象数据类型来描述的,这种抽象数据类型称为类(Class)。 类是具有相同数据格式(属性)和相同操作功能(方法)的对象的集合与抽象。
3、 Java程序中类的声明语法形式如下: 修饰符 class 类名 变量成员声明及初始化; 方法声明及方法体; 其中,“ ”内的内容为可选项。,类与对象,程序中的类程序中的对象 程序中的类是对现实世界中一类对象的描述,也是构造程序中对象的模板,对象是类的具体实例。 程序中的类就如同建造大楼的设计图纸,程序中的对象(实例)就如同建造出的大楼。使用同一个设计图纸可以建造出很多大楼。 例:Student2. java,类与对象,类与对象,程序中的类程序中的对象 生成一个对象: 类名 实例名 = new 类名 (参数列表); 并在内存中为此对象分配内存空间, 并返回对象的引用( reference ,相
4、当于对象的存储地址)。,类与对象,程序中引用(reference) 每个引用占据32位的内存空间,其值指向对象实际所在的内存中的位置,例如: Date d = new Date( ); 产生一个Date类型的对象(实例),d的值就指向该对象实际所在的内存空间。,类与对象,类与对象,为什么要使用类? 采用简单数据类型表示现实世界中概念的局存在很大的限性。 例如:采用int型数据表示一个日期概念,需要使用3个变量: int day, month, year; 如果要表示2个人的生日,就要使用6个变量; 并且在使用中必须时刻注意三者的联系和约束关系; 同时在使用日期概念时要同时对三个变量进行访问。
5、使用类可以把现实问题中的对象映射为程序中的一个整体类,类与对象,学生类(Student)类 class Student / 类首部 int id; /定义学号 String name; /定义姓名 double grade; /定义成绩 int age; /定义年龄 / 类定义结束 产生学生对象 Student stu1 = new Student( ); Student stu2 = new Student( ); 例:Student1. java,类与对象,类的成员变量声明的格式如下: 修饰符 类型 变量 = 初始值; 说明: 修饰符如public、private 为访问控制符。publi
6、c即公有的,也就是它可以被其他任何对象访问。private即私有的,只能被这个类本身访问,在类外不可见。 修饰符static指明这是一个类变量(静态成员变量或静态变量)。 例: Student1. java、StudentTest1. java,类与对象,在一些情况中程序采用的是直接访问Student类对象成员变量的策略。代码片段如下: s2.grade = 90; s2.age = 23; 从表面上看,程序一切正常。如果有下面的代码片段,很快就会发现这不是一种好的设计方法。 s2.grade = -50; / 分数为负? s2.age = -5; / 年龄为负? 显然,学生成绩和年龄为负数是
7、不符常理的。由于用户能直接访问对象的数据,所以无法限制其它应用程序在调用这些变量时,赋予其数值的范围。,类与对象,好的编程习惯一般不允许其它类直接存取或修改一个对象的成员变量。作为一条规则,把成员变量声明成private,把它们对其他对象隐藏起来,通过提供方法访问属性值。 语法格式如下: 修饰符 返回类型 方法名(参数列表) 方法体 例: Student2. java 、StudentTest2. java,封装把对象的所有组成部分组合在一起,类与对象,方法的调用 必须注意方法的返回值 public String getName():表示该方法运行结束后会产生一个String类型的对象作为结果
8、返回给调用者使用。 public void printName():表示该方法运行结束后没有任何数据供调用者使用。 方法的参数列表 public void setName(String stuName) 表示该方法运行时必须要接受一个String类型的数据。,类与对象,练习 充实前面的Student类,加入性别、专业、年级、班级等属性,并定义相应的get、set方法;然后定义测试类对各个属性进行赋值、显示等测试。,对象初始化,前面的例子,每创建一个Student对象都要调用一系列set方法来初始化类中的实例变量,这实在太繁琐。因此,在创建对象的同时就对对象进行初始化是一种简单而有效的解决方法。
9、 Java中有一种特殊的方法叫构造方法(Constructor),即产生对象时需要调用的方法。 构造方法的形式如下: public 类名(参数列表) 语句体 ,对象初始化,说明: (1). 构造方法名必须为该类名; (2). 可以通过参数表和方法体来给你生成的对象的成员变量赋初值; (3). 构造方法没有任何返回值。 例: Student3. java、StudentTest3. java,对象初始化,默认构造方法(Default Constructor) 类被定义时如果没有显式地定义一个构造方法,那么编译器会自动创建一个默认构造方法。 public Student( ) 这使得能够通过使用n
10、ew Student()语句产生学生类的对象。 但是一旦在类中自定义了构造方法,编译器就不会提供默认的构造方法了。 例: Student4. java、StudentTest4. java,对象初始化,成员初始化 public class Student String school = “NEUSOFT”; float java_point = getJavaPoint(); float c_point = getCPoint(); float average = getAvergePoint(java_point, c_point); public static float getJavaP
11、oint() public static float getCPoint() 例: StudentInit. java,对象初始化,初始化顺序 类的变量会在任何方法(包括构造方法)执行之前得到初始化,即被赋予初值,静态变量初始化在实例变量之前。 例: OrderOfInit. java,对象初始化,static补充 用修饰符static修饰的变量称为类静态变量,也叫做静态变量或者类变量。静态变量是类的变量,不属于任何一个类的具体对象实例。它不保存在某个对象实例的内存空间中,而是保存在类的内存空间的公共存储单元中。 也就是说,不论一个类具有多少个对象,静态变量只有一个,任何一个类的对象访问它,取
12、得的都是相同的数值。同样地,任何一个类的对象去修改它,也都是在对同一个内存单元进行操作。静态变量可以通过类名直接访问,也可以通过对象来调用。采用这两种方法取得的结果是相同的。 例:StaticTest.java、StaticInit. java,对象初始化,练习 创建一个桌子(Table)类,该类中有桌子名称、重量、桌面宽度、长度和桌子高度属性,以及以下几个方法: (1). 构造方法:初始化所有成员变量。 (2). area( ):计算桌面的面积。 (3). display( ):在屏幕上输出所有成员变量的值。 (4). changeWeight(int w):改变桌子重量。 在测试类的mai
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 对象 基本概念
链接地址:https://www.31doc.com/p-2600410.html