类与对象的基本概念
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一.类与对象
• 学生类(Student)类
class Student {
// 类首部
int id;
//定义学号
String name;
//定义姓名
double grade; //定义成绩
int age;
//定义年龄
}
// 类定义结束
• 产生学生对象
Student stu1 = new Student( );
一.类与对象
• 什么是类 – 可以将现实生活中的对象经过抽象,映射为程序中的 对象。对象在程序中是通过一种抽象数据类型来描述 的,这种抽象数据类型称为类(Class)。 – 类是具有相同数据格式(属性)和相同操作功能(方 法)的对象的集合与抽象。 – Java程序中类的声明语法形式如下: [修饰符] class 类名 { 变量成员声明及初始化; 方法声明及方法体; } 其中,“[ ]”内的内容为可选项。
– 方法的参数列表 • public void setName(String stuName) • 表示该方法运行时必须要接受一个String类型的数 据。
一.类与对象
• 练习
– 充实前面的Student类,加入性别、专业、年级、班级等 属性,并定义相应的get、set方法;然后定义测试类对 各个属性进行赋值、显示等测试。
– 产生一个Date类型的对象(实例),d的值就指向该对 象实际所在的内存空间。
类与对象
一.类与对象
• 为什么要使用类? – 采用简单数据类型表示现实世界中的概念存在很大的 局限性。 • 例如:采用int型数据表示一个日期概念,需要使 用3个变量: int day, month, year; • 如果要表示2个人的生日,就要使用6个变量; • 并且在使用中必须时刻注意三者的联系和约束关 系; • 同时在使用日期概念时要同时对三个变量进行访 问。 – 使用类可以把现实问题中的对象映射为程序中的一个 整体——类
一.类与对象
• 程序中的类程序中的对象 – 生成一个对象: 类名 实例名 = new 类名 (参数列表);
– 并在内存中为此对象分配内存空间, 并返回对象的引 用( reference ,相当于对象的存储地址)。
一.类与对象
• 程序中引用(reference) – 每个引用占据32位的内存空间,其值指向对象实际所 在的内存中的位置,例如: Date d = new Date( );
一.类与对象
• 好的编程习惯一般不允许其它类直接存取或修改一个对 象的成员变量。作为一条规则,把成员变量声明成 private,把它们对其他对象隐藏起来,通过提供方法访 问属性值。
• 语法格式如下: [修饰符] 返回类型 方法名([参数列表]){ 方法体 }
– 例: Student2. java 、StudentTest2. java
公有数据 私有数据
数据
方法
方法
对象A
对象B
封装把对象的所有组成部分组合在一起
一.类与对象
• 方法的调用 – 必须注意方法的返回值 • public String getName():表示该方法运行结束后 会产生一个String类型的对象作为结果返回给调用 者使用。 • public void printName():表示该方法运行结束后 没有任何数据供调用者使用。
类与对象的基本概念
一.类与对象 二.对象初始化 三.方法的使用 四.类的组织 五.访问控制 六.常用工具类 七.小结
一.类与对象
• 什么是对象 – 对象是现实世界中存在的事物,“万事万物皆对象”。 – 每个对象是构成现实世界的一个独立的单位,具有自 己的静态特征(状态)和动态特征(行为)。 – 程序中对象就是一组变量和相关方法的集合,其中变 量表明对象的状态,方法表明对象所具有的行为。 – 例如,人(Person)、顾客(Customer)、银行帐号 (Bank account)、钟表(Clock)及生日(BirthDate) 都可以看成是现实生活中的对象,他们具有的状态及 行为如表3-1所示。
一.类与对象
• 程序中的类程序中的对象 – 程序中的类是对现实世界中一类对象的描述,也是构 造程序中对象的模板,对象是类的具体实例。 – 程序中的类就如同建造大楼的设计图纸,程序中的对 象(实例)就如同建造出的大楼。使用同一个设计图 纸可以建造出很多大楼。
– 例:Student2. java
Fra Baidu bibliotek
类与对象
Student stu2 = new Student( );
– 例:Student1. java
一.类与对象
• 类的成员变量声明的格式如下: [修饰符] 类型 变量 [= 初始值];
• 说明: – 修饰符如public、private 为访问控制符。public即公有 的,也就是它可以被其他任何对象访问。private即私 有的,只能被这个类本身访问,在类外不可见。 – 修饰符static指明这是一个类变量(静态成员变量或 静态变量)。
一.类与对象
• 现实世界中的对象程序中的类 – 我们称现实世界中具有相同静态特征和动态特征的所 有对象为“一类对象”,对某类对象进行抽象可以形 成类(class)。 – 在抽象的过程中我们会在该类对象的所有静态特征和 动态特征中进行取舍,只抽取对我们“有用的”特征 并在Java的类中加以描述。 class Person { String name; int age; char gender; void eat( ) { … } void sleep ( ) { … } }
– 例: Student1. java、StudentTest1. java
一.类与对象
• 在一些情况中程序采用的是直接访问Student类对象成 员变量的策略。代码片段如下: s2.grade = 90; s2.age = 23; – 从表面上看,程序一切正常。如果有下面的代码片段 ,很快就会发现这不是一种好的设计方法。 s2.grade = -50; // 分数为负? s2.age = -5; // 年龄为负? – 显然,学生成绩和年龄为负数是不符常理的。由于用 户能直接访问对象的数据,所以无法限制其它应用程 序在调用这些变量时,赋予其数值的范围。