第四章 类、对象和方法
合集下载
自考C++程序设计 总复习

输出一个换行符 清除flag标志位 清除flag标志位 设置ch为填充字符 设置浮点数输出精度 设置输出字符间字段宽度
输出 输出 输出 输出 输出 输出
常量名 Ios_base :: left Ios_base ::right Ios_base ::showpoint Ios_base ::showpos Ios_base ::scientific Ios_base ::fixed
(2)析构函数在对象的生存期结束时被主动调用。类得对象数组的每个元素调用一次构造函 数。 (3)析构函数和运算符delete:当使用delete删除一个动态对象时,它首先为这个动态对象调 用析构函数,然后再释放这个动态对象占用的内存。这和使用new建立动态对象的过程刚好相 反。 5.成员函数重载及默认函数 (1)this指针:c++规定当一个成员函数被调用时,系统自动向它传递一个隐含的参数,该参 数是一个指向调用该函数的指针,从而使成员函数知道该对那个对象进行操作。 (2)this指针是c++实现封装的一种机制,它将该对象调用的成员函数连接在一起,在外部看 来,每一个对象都拥有自己的成员函数。一般情况下都省略符号“this->”,而让系统进行默认 设置。 6.一个类的对象作为另一个类的成员 (1)类本身就是一种新的数据类型,所以一个类可以作为另一个类得成员。
(7)当使用new建立一个动态对象,new首先分配足够对象的内存,然后自动构造函数来初始 化这块内存,再返回这个动态对象的地址。 (8)构造函数的默认参数:如果程序定义自己的有参构造函数,又想使用无参数形式的构造 函数,那么就是吧构造函数使用默认参数设计。 (9)复制构造函数:引用在类中一个很重要的用途是用在复制构造函数中。这一类特殊而且 重要的函数通常用于使自己已有的对象来建立一个新对象。复制构造函数原型如下:类名:: 类名(const 类名 &) 4.析构函数 (1)析构函数析构函数的名称和类名一样,为了与构造函数区分在析构函数前面加~符号。析 构函数不能定义任何返回类型,即使指定为void也不行。一般形式如下:类名::~类名 (void)
4-1UML类目介绍

1986:G.Booch的OOD; : 的 ; 1990:P.Coad和E.Yourdon的OOA,OOD : 和 的 , 1994:Embly的OSA等。 : 的 等 1991:J.Rumbbaugh的OMT; : 的
期间,形成了以下 大学派 大学派, 期间,形成了以下2大学派,即: 第一种: 驱动的方法学。 第一种:以“方法(method )”驱动的方法学。 方法( 基本思想:在给出符号体系的基础上, • 基本思想:在给出符号体系的基础上,明确规定 进行的“步骤” 进行的“步骤”,并在每一步中给出 “实施策略”。 实施策略” 代表:P.Coad的 OOA(1990) OOD(91) • 代表:P.Coad的“OOA(1990)”, “ OOD(91) ” 优缺点分析: • 优缺点分析: 优点:容易学习和掌握。 优点:容易学习和掌握。 缺点:不够灵活, 缺点:不够灵活,可能对出现的新问题就没有 办法处理。 办法处理。
2 UML UML概述 1) UML概述
UML是一种可视化语言,用于: 是一种可视化语言,用于: 是一种可视化语言 规约系统的制品 系统的制品; (1)规约系统的制品; 构造系统的制品 系统的制品; (2)构造系统的制品; 建立系统制品的文档 系统制品的文档。 (3)建立系统制品的文档。 UML应用范围 应用范围 UML作为一种一般性的语言 作为一种一般性的语言: UML作为一种一般性的语言: 可用于对象方法和构件方法; (1)可用于对象方法和构件方法; (2)可用于 •所有应用领域 所有应用领域
•••••• •••••• •••••• ••••••
表达模型的工具 -类图、交互图等 需求分析层 类图、 类图 表达模型的工具 -类图、交互图等 类图、 类图 表达模型的工具 设计层
2)面向对象方法术语/符号 2)面向对象方法术语/ 面向对象方法术语 基于面向对象方法的世界观, 大千世界是由对象组成的, 基于面向对象方法的世界观,即“大千世界是由对象组成的, 面向对象方法的世界观 对象有其自己的属性和运动规律, 对象有其自己的属性和运动规律,对象之间的相互作用构成了 客观世界各种各样的系统。 为了支持软件开发, 客观世界各种各样的系统。” 为了支持软件开发,面向对象方 法 主要提供了两类术语: 主要提供了两类术语: 一类是表达结构化事物的术语; 一类是表达结构化事物的术语; 一类是表达关系的术语。 一类是表达关系的术语。
期间,形成了以下 大学派 大学派, 期间,形成了以下2大学派,即: 第一种: 驱动的方法学。 第一种:以“方法(method )”驱动的方法学。 方法( 基本思想:在给出符号体系的基础上, • 基本思想:在给出符号体系的基础上,明确规定 进行的“步骤” 进行的“步骤”,并在每一步中给出 “实施策略”。 实施策略” 代表:P.Coad的 OOA(1990) OOD(91) • 代表:P.Coad的“OOA(1990)”, “ OOD(91) ” 优缺点分析: • 优缺点分析: 优点:容易学习和掌握。 优点:容易学习和掌握。 缺点:不够灵活, 缺点:不够灵活,可能对出现的新问题就没有 办法处理。 办法处理。
2 UML UML概述 1) UML概述
UML是一种可视化语言,用于: 是一种可视化语言,用于: 是一种可视化语言 规约系统的制品 系统的制品; (1)规约系统的制品; 构造系统的制品 系统的制品; (2)构造系统的制品; 建立系统制品的文档 系统制品的文档。 (3)建立系统制品的文档。 UML应用范围 应用范围 UML作为一种一般性的语言 作为一种一般性的语言: UML作为一种一般性的语言: 可用于对象方法和构件方法; (1)可用于对象方法和构件方法; (2)可用于 •所有应用领域 所有应用领域
•••••• •••••• •••••• ••••••
表达模型的工具 -类图、交互图等 需求分析层 类图、 类图 表达模型的工具 -类图、交互图等 类图、 类图 表达模型的工具 设计层
2)面向对象方法术语/符号 2)面向对象方法术语/ 面向对象方法术语 基于面向对象方法的世界观, 大千世界是由对象组成的, 基于面向对象方法的世界观,即“大千世界是由对象组成的, 面向对象方法的世界观 对象有其自己的属性和运动规律, 对象有其自己的属性和运动规律,对象之间的相互作用构成了 客观世界各种各样的系统。 为了支持软件开发, 客观世界各种各样的系统。” 为了支持软件开发,面向对象方 法 主要提供了两类术语: 主要提供了两类术语: 一类是表达结构化事物的术语; 一类是表达结构化事物的术语; 一类是表达关系的术语。 一类是表达关系的术语。
第四章 面向对象编程(三)

43
定义类CCircle实现接口
Class CCircle implements CircleCal{ double clength(double r){ return 2*PI*r; } double carea(double r){ return PI*r*r; }
44
5.没有实现父类中所有抽象方法的类,也是抽象类。
8
抽象类实例
public abstract class Car{
private double price;
pribate String brand;
private int speed;
public class CarDemo{
}
public static void main(String[] args){ 抽象类不 Car c=new Car(); }}//编译能否通过?? 能被实例 化
抽象类练习:
定义一个描述宠物的抽象类Pet,包含重 量(weight)和年龄(age)两个成员变 量和显示宠物资料的showInfo和获取宠 物资料的getInfo两个抽象方法。
19
生活中的接口
电脑主板上的PCI插槽的规范就类似于Java 接口
声卡
网卡
主板
显卡
每种卡的内部结构都不相同,可以把声卡、 网卡、显卡都插在PCI插槽上,而不用担心哪 个插槽是专门插哪个卡的
41
练习:
创建一个接口 CircleCal,其中有: 一个数据成员 pi=3.1415 一个方法 clength,求圆周长 一个方法 carea,求园面积 一个方法 cvolum,求球的体积 并创建一个类CCircle ,实现该接口
java知识点总结

D、不确定
10、数组的长度: 数组的长度用其属性值. Length表示。 对一维数组,数组的长度是数组中元素的个数 对二维数组,数组的长度是其含有的一维数组的个数。 float a[] = new float[12]; a.length的值12 int x[ ][ ]=new int[3][6] x.length的值为 3。
第1章 Java 入门 Java入门
计算机工程学院
第一章
• 一、与平台无关性
Java 应用程序编译后形成的字节码CLASS文件不是直接在操作系统或者 CPU上直接运行,而是字节码由Java虚拟机负责解释运行。因此Java编写的应 用程序在运行时与平台无关。 二、 Java三种平台简介 Java平台主要分为三个版本:JavaSE、JavaEE 、 JavaME • • • Java SE(标准版或Java 标准平台) 是Java技术的核心和基础 Java EE(企业版企业平台) Java ME(为Java微型版或Java小型平台)为在移动设备和嵌入式设备上运行 应用程序提供一个健壮且灵活的环境。
• Java SE是基础
计算机工程学院
第一章
三、 系统环境path的设置: (1) 设 置 环 境 变 量 path , 可 单 击 该 变 量 进 行 编 辑 操 作 , 将 需 要 的 值 (D:\jdk7\bin)加入即可 。 path= D:\jdk7\bin; (2)设置环境classpath classpath=D:\jdk7\jre\lib\rt.jar;.;
数组的实体
数组变量boy中存放着数组在内存中单元(实体)的首地址。 计算机工程学院
第二章
9、2个相同类型的数组具有相同的引用,那么他们具有完全相同的元素(实体)
C++语言程序设计(清华大学郑莉)

C++语言程序设计
第四章 类与对象
清华大学 郑 莉
C++语言程序设计
本章主要内容
清华大学 郑莉
面向对象的思想 OOP的基本特点 类概念和声明
对象 构造函数 析构函数
内联成员函数 拷贝构造函数 类的组合 结构体与联合体 深度探索
2
C++语言程序设计
清华大学 郑莉
回顾:面向过程的设计方法
second; }
19
C++语言程序设计
清华大学 郑莉
成员数据
类
和
与一般的变量声明相同,但需要将它 放在类的声明体中。
对
象
20
C++语言程序设计
清华大学 郑莉
成员函数
类
和
在类中说明原型,可以在类外给出函数 体实现,并在函数名前使用类名加以限
对 定。也可以直接在类中给出函数体,形
象 成内联成员函数。
};
成员数据
18
void Clock::setTime(int newH, int newM, int newS) {
hour = newH; minute = newM; second = newS; } void Clock::showTime() { cout << hour << ":" << minute << ":" <<
C++语言程序设计
清华大学 郑莉
类的声明形式
类
和
类是一种用户自定义类型,声明形式:
class 类名称
对{
第四章 类与对象
清华大学 郑 莉
C++语言程序设计
本章主要内容
清华大学 郑莉
面向对象的思想 OOP的基本特点 类概念和声明
对象 构造函数 析构函数
内联成员函数 拷贝构造函数 类的组合 结构体与联合体 深度探索
2
C++语言程序设计
清华大学 郑莉
回顾:面向过程的设计方法
second; }
19
C++语言程序设计
清华大学 郑莉
成员数据
类
和
与一般的变量声明相同,但需要将它 放在类的声明体中。
对
象
20
C++语言程序设计
清华大学 郑莉
成员函数
类
和
在类中说明原型,可以在类外给出函数 体实现,并在函数名前使用类名加以限
对 定。也可以直接在类中给出函数体,形
象 成内联成员函数。
};
成员数据
18
void Clock::setTime(int newH, int newM, int newS) {
hour = newH; minute = newM; second = newS; } void Clock::showTime() { cout << hour << ":" << minute << ":" <<
C++语言程序设计
清华大学 郑莉
类的声明形式
类
和
类是一种用户自定义类型,声明形式:
class 类名称
对{
第四章审计的种类方法和程序

第四章审计的种类方法和程序
抽查法
指从作为特定审计对象的总体中,按照一定方法,有选 择地抽出其中一部分资料进行检查,并根据其检查结果 来对其余部分的正确性及恰当性进行推断的一种审计方 法。
➢优点:能使审计人员从简单而繁杂的数字游戏中解脱 出来,极大地提高工作效率。 ➢缺点:繁琐,易发生偏差。 ➢适用范围:内部控制系统比较健全,会计基础较好的 企事业单位。
重点,为制订审计方案服务; 2. 在实施阶段,询问法的使用主要是为了收集相关的充分的审计证据,为最终做
出审计结论服务; 3. 在报告阶段,询问法的使用主要是为了与被审计单位沟通有关情况,对审计报
告的内容达成一定程度的共识。 (三)询问法使用过程中的注意要点 1. 要根据谈话的目的和被审计单位相关人员角色的分工,去定合适的谈话人员; 2. 实施询问法的内部审计人员对面谈中所涉及的领域要有足够高的知识水平; 3. 询问前要对内容做好充分的准则; 4. 询问中要注意一定的技巧,包括询问人员的行为举止等; 5. 应对询问内容认真做好记录,如有必要,可请被谈话人签字。
直接材料=67200÷(120+60×80%)×(60×80 %)=19200(元)
直接人工=10 500÷(120+60×50%)×(60×50 %)=2100(元)
制造费用= 24000÷(120+60×50%)×(60×50 %)=4800(元)
在产品成本合计=19200+2100+4 800=26100(元)
第四章审计的种类方法和程序
示例
内部审计师在审计Y公司2005年度会计报表 时,基于对于应收账款相关的内部控制的了解 和测试情况,将控制风险评估为高水平,并根 据2005年12月31日的应收账款明细表,于2006 年1月15日采用积极方式对所有重要客户寄发了 询证函。
抽查法
指从作为特定审计对象的总体中,按照一定方法,有选 择地抽出其中一部分资料进行检查,并根据其检查结果 来对其余部分的正确性及恰当性进行推断的一种审计方 法。
➢优点:能使审计人员从简单而繁杂的数字游戏中解脱 出来,极大地提高工作效率。 ➢缺点:繁琐,易发生偏差。 ➢适用范围:内部控制系统比较健全,会计基础较好的 企事业单位。
重点,为制订审计方案服务; 2. 在实施阶段,询问法的使用主要是为了收集相关的充分的审计证据,为最终做
出审计结论服务; 3. 在报告阶段,询问法的使用主要是为了与被审计单位沟通有关情况,对审计报
告的内容达成一定程度的共识。 (三)询问法使用过程中的注意要点 1. 要根据谈话的目的和被审计单位相关人员角色的分工,去定合适的谈话人员; 2. 实施询问法的内部审计人员对面谈中所涉及的领域要有足够高的知识水平; 3. 询问前要对内容做好充分的准则; 4. 询问中要注意一定的技巧,包括询问人员的行为举止等; 5. 应对询问内容认真做好记录,如有必要,可请被谈话人签字。
直接材料=67200÷(120+60×80%)×(60×80 %)=19200(元)
直接人工=10 500÷(120+60×50%)×(60×50 %)=2100(元)
制造费用= 24000÷(120+60×50%)×(60×50 %)=4800(元)
在产品成本合计=19200+2100+4 800=26100(元)
第四章审计的种类方法和程序
示例
内部审计师在审计Y公司2005年度会计报表 时,基于对于应收账款相关的内部控制的了解 和测试情况,将控制风险评估为高水平,并根 据2005年12月31日的应收账款明细表,于2006 年1月15日采用积极方式对所有重要客户寄发了 询证函。
面向对象编程技术第四章-文档资料

说明:
关键字public后面声明公有类型成员 它们是类与外部的接口,任何外部函数都可以访问公有类 型数据和函数 关键字private后面声明私有类型成员
允许本类中的函数访问,类外部的任何函数都不能访问。 紧跟在类名称的后面声明私有成员,关键字private可省略 (不提 倡)
1.
2.
说明:
3.
保护类型与private类似,其差别表现在继承与派生时对派 生类的影响不同,在第七章介绍。
下页 例子
构造函数,后面介绍 class circle { public: circle::circle(int r) { radius=r; } int area() { return (int)3.14*radius*radius;
} void circle_prt() { cout<<"the private radius is:"<<radius<<endl; } void main() private: { int radius; circle circle1(1),circle2(3); };
3. 利用类易于编写大型复杂程序,其模块化程度比 C中采用函数更高。
慢慢体会…
2. 类的定义:
类是一种用户自定义类型,声明形式: class 类名 { public: 公有成员(外部接口) private: 私有成员 protected: 保护型成员 }
时钟类的成员 (数据成员与函数成员声明) class Clock 数据成员 {private: int Hour, Minute, Second; public: void SetTime(int NewH, int NewM, int NewS); void ShowTime( ); };
软件设计与体系结构-第四章-面向对象的软件设计方法课件

l 概念模型与顶层架构设计:
l 在用户需求和相关的业务领域中,概念及概念关系的抽取
l 用户界面设计:
l 设计每个界面中的所有界面元素,确定初步的界面布局,定义用户界面动作对软件系统中设计元
素的要求
l 数据模型的设计:
l 确定设计模型中需要持久保存的类的对象及其属性,定义持久持久存储数据之间的组织方式,并
.
26
概念模型和顶层架构设计
l 边界类: 其职责包括: l 边界控制: l 包括定义数据的格式及内容转换,输出结果的呈现,软件运行过程中界
面的变化与切换等。 l 外部接口: l 实现目标软件系统与外部系统或外部设备之间的信息交流和互操作,主
要关注跨越目标软件系统边界的通信协议 l 环境隔离: l 对目标软件系统与操作系统、数据库管理系统、中间件等环境软件进行
事件流中步骤(1)
l (3)如果账户余额小于取款金额,则显示信息“账户余额不足,请重新输入”,并返回主事件流
中步骤(1)
l (4)顾客在确认取款金额前右以选择取消交易。
l 后置条件: 如果取款成功,系统从账户余额中减去相应数额,并返回等待状态;如果顾客取消交易,
则返回等待状态
.
19
用例的分析与设计
体技术没有关系 l 顶层架构的设计 l 目的: 为后续的分析和设计活动建立一种结构和划分
.
24
概念模型和顶层架构设计
l 关键概念来源: l 为建立以UML类图表示的领域概念模型,首先必须标识关键概念。关键
概念的来源包括: l (1)业务需求描述、用例说明; l (2)业务领域中的相关规范、标准、术语定义。 l (3)反映业务领域知识的既往经验。 l 业务需求描述 l 业务领域中的相关规范、标准、述评呼定义 l 反映业务领域知识的既往经验
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
方法的名称
方法返回的数据类型
方法的定义
方法的主体
定义类的方法
public 返回值类型 方法名() { //这里编写方法的主体
}
步骤一:定义方 法名以及返回值
步骤二:编写方 法体
方法的命名
➢如何给方法起名字?
➢必须以字母、‘_’或‘$’开头 ➢可以包括数字,但不能以它开头
➢遵循的命名规范
➢通常方法名是一个动词,如果有两个以上单词组成,第一个单词的首字母 小写,其后单词首字母大写
演示示例3:创建和使用类和对象
面向对象(OO)的优点
➢便于程序模拟现实世界中的实体
➢用“类”表示实体的特征和行为
➢隐藏细节
➢对象的行为和属性被封装在类中,外界通过调用类的方法来获得,不需关注 内部细节如何实现
➢可重用
➢可以通过类的模板,创建多个类的对象
数据类型总结
int double char
基本数据类型
System.out.println(center.showCenter()); } }
演示示例2:创建和使用对象
综合案例
➢编写学生类,输出学生相关信息 ➢编写教员类,输出教员相关信息
学生类
属性: 姓名 年龄 参加的课程 兴趣
方法: 显示学员个人信息
教员类
属性: 姓名 专业方向 教授的课程 教龄
方法: 显示教员个人信息
➢ 给类的属性赋值:对象名.属性 ➢ 调用类的方法:对象名.方法名()
center.schoolName = "北京中心"; //给属性赋值
center.showCenter(); 执行
//调用类的方法,该方法中的操作将被
创建和使用对象示例
创建“北京中心”对象
public class InitialYuntuSchool {
*
输出
*
*
*
*
**
**
本章任务
以OO方式实现: ➢ YunTu学校类,描述YunTuSchool中心基本信息 ➢ 学生类,输出学生信息 ➢ 教员类,输出教员信息 ➢ 计算并显示总成绩 ➢ 计算并显示平均成绩
➢ 实现客户信息的添加和查询 ➢ 实现图形生成器 ➢ 实现模拟账户存取款功能
本章任务
➢掌握类和对象的特征 ➢理解封装 ➢会创建和使用对象 ➢会定义和使用类无参和带参方法 ➢理解变量作用域 ➢会创建包组织Java工程 ➢会添加类方法的JavaDoc注释 ➢会阅读JavaSE6文档 ➢使用String类提供的方法处理字符串
相辅相承,不能分割
谁看见过只有“完好 的零件和颜色”而不
能开动的汽车?
从对象抽象出“类”
抽取出下列对象的属性和方法的共同特征
顾客
类
顾客类 轿车类
…… ……
类是模子,确定对象将会拥有的 特征(属性)和行为(方法)
➢类是对象的类型 ➢不同于int类型:具有方法
球状冰淇淋模子
各种口味的球状冰淇淋
小结
说一说看到 什么效果?
public static void main(String[ ] args){ YuntuSchool center = new YuntuSchool();
System.out.println(center.showCenter());
center.schoolName = "北京中心"; center.classNum = 10; bNum = 10;
对象名.方法名();
小明过生日,爸爸送他一个电动狮子玩具,编程 测试这个狮子能否正常工作
演示示例1:演示运行效果
public class TestLion {
方法调用
public static void main(String[ ] args) {
public class AutoLion { String color = "黄色";
➢类和对象有什么区别呢?
➢类是抽象的概念,仅仅是模板,比如说:“人” ➢对象是一个你能够看得到、摸得着的具体实体,比如:“小布什”
“人”类
特征(属性)
年龄 体重
行为(方法)
衣 食 住 行
小布什 普京 克林顿 ……
Java 是面向对象的语言
➢所有Java程序都以类class为组织单元 ➢关键字class定义自定义的数据类型
b(); //调用b()
}
2、类Student的方法a()调用类Teacher public void a(){
的方法b(),先创建类对象,然后使用“.” 调用
Teacher t = new Teacher(); t.b(); //调用Teacher类的b()
}
变量作用域3-1
public class AutoLion { String color = "黄色";
方法的返回值
➢两种情况
➢如果方法具有返回值,方法中必须使用关键字return返回该值,返回类型 为该返回值的类型
return 表达式; ➢如果方法没有返回值,返回类型为void
public class Student{ String name = "张三"; public void getName(){
String 使用class定义的类型
Student Teacher YuntuSchool 数组
引用数据类型
按此按钮, 狮子开始跑
类的方法
➢写出狮子对象的“跑”方法 ➢写出狮子对象的“叫”方法
电动玩具狮子 属性: 颜色:黄色
行为: 跑 叫
类的方法示例
AutoLion类代码实现
public class Au返to回Lio类n型{ String color = "黄色";
}
可以调用吗?
public String showLion() { //方法4:输出类的描述信息 return "这是一个" + getColor() + "的玩具狮子!叫声是" + sound ;
return "这是一个" + getColor() + "的玩具狮子!" ;
} }
演示示例2:设置断点演示方法调用执行过程
方法调用小结
➢方法之间允许相互调用,不需要知道方法的具体实现,提高了效 率
情况
举例
1、类Student 的方法a()调用Student类 public void a(){
的方法b(),直接调用
return schoolName + "培训Yuntu学员" + "\n" + "配备:"+ classNum + "教" + labNum + "机";
}
}
定义类的showCenter()方法, 用于输出类相关的信息
代码错误
public class .Book { String bookName; String authorName; int pageNum; boolean isAvailable;
演示示例1:使用Eclipse创建YuntuSchool类框架
类示例2-2
成员变量
public class YuntuSchool {
//定义云图智联中心的属性
String schoolName; // 中心的全称
int classNum;
//教室的数目
int labNum;
//机房的数目
// 定义云图智联中心的方法 public void showCenter() {
public void run(){ //方法1:跑 System.out.println("正在以0.1米/秒的速度向前奔跑。");
}
public String bark(){ //方法2:叫 String sound = "吼" ; return sound;
}
public String getColor(){ //方法3:获得颜色属性 return color ;
return name;
编译错误
} …… }
返回类型要匹配
常见错误2-1
public class YuntuSchool{ …… public static void main(String[ ] args){ …… return "云图智联北京中心! "; }
}
返回类型是void 方法中不能有返回值
方法名称
public void run(){ System.out.println("正在以0.1米/秒的速度向前奔跑");
}
public String bark(){ String sound = "吼" ; return sound;
} }
方法体
如何定义类的方法
➢ 类的方法定义类的某种行为(或功能)
}
常见错误
类命名规则:
1、不能使用Java关键字 2、首字母可以为字母,也可以是“_”或“$ ”(建议不要这 样) 3、不能包含空格或“.”号
如何创建和使用对象
➢使用对象的步骤:
➢使用new创建类的一个对象
YuntuSchool center = new YuntuSchool();
➢使用对象:使用“.”进行以下操作
第四章 类、对象和方法
循环语句while、do-while、for的区别是什么?
回顾
写出运行结果
方法返回的数据类型
方法的定义
方法的主体
定义类的方法
public 返回值类型 方法名() { //这里编写方法的主体
}
步骤一:定义方 法名以及返回值
步骤二:编写方 法体
方法的命名
➢如何给方法起名字?
➢必须以字母、‘_’或‘$’开头 ➢可以包括数字,但不能以它开头
➢遵循的命名规范
➢通常方法名是一个动词,如果有两个以上单词组成,第一个单词的首字母 小写,其后单词首字母大写
演示示例3:创建和使用类和对象
面向对象(OO)的优点
➢便于程序模拟现实世界中的实体
➢用“类”表示实体的特征和行为
➢隐藏细节
➢对象的行为和属性被封装在类中,外界通过调用类的方法来获得,不需关注 内部细节如何实现
➢可重用
➢可以通过类的模板,创建多个类的对象
数据类型总结
int double char
基本数据类型
System.out.println(center.showCenter()); } }
演示示例2:创建和使用对象
综合案例
➢编写学生类,输出学生相关信息 ➢编写教员类,输出教员相关信息
学生类
属性: 姓名 年龄 参加的课程 兴趣
方法: 显示学员个人信息
教员类
属性: 姓名 专业方向 教授的课程 教龄
方法: 显示教员个人信息
➢ 给类的属性赋值:对象名.属性 ➢ 调用类的方法:对象名.方法名()
center.schoolName = "北京中心"; //给属性赋值
center.showCenter(); 执行
//调用类的方法,该方法中的操作将被
创建和使用对象示例
创建“北京中心”对象
public class InitialYuntuSchool {
*
输出
*
*
*
*
**
**
本章任务
以OO方式实现: ➢ YunTu学校类,描述YunTuSchool中心基本信息 ➢ 学生类,输出学生信息 ➢ 教员类,输出教员信息 ➢ 计算并显示总成绩 ➢ 计算并显示平均成绩
➢ 实现客户信息的添加和查询 ➢ 实现图形生成器 ➢ 实现模拟账户存取款功能
本章任务
➢掌握类和对象的特征 ➢理解封装 ➢会创建和使用对象 ➢会定义和使用类无参和带参方法 ➢理解变量作用域 ➢会创建包组织Java工程 ➢会添加类方法的JavaDoc注释 ➢会阅读JavaSE6文档 ➢使用String类提供的方法处理字符串
相辅相承,不能分割
谁看见过只有“完好 的零件和颜色”而不
能开动的汽车?
从对象抽象出“类”
抽取出下列对象的属性和方法的共同特征
顾客
类
顾客类 轿车类
…… ……
类是模子,确定对象将会拥有的 特征(属性)和行为(方法)
➢类是对象的类型 ➢不同于int类型:具有方法
球状冰淇淋模子
各种口味的球状冰淇淋
小结
说一说看到 什么效果?
public static void main(String[ ] args){ YuntuSchool center = new YuntuSchool();
System.out.println(center.showCenter());
center.schoolName = "北京中心"; center.classNum = 10; bNum = 10;
对象名.方法名();
小明过生日,爸爸送他一个电动狮子玩具,编程 测试这个狮子能否正常工作
演示示例1:演示运行效果
public class TestLion {
方法调用
public static void main(String[ ] args) {
public class AutoLion { String color = "黄色";
➢类和对象有什么区别呢?
➢类是抽象的概念,仅仅是模板,比如说:“人” ➢对象是一个你能够看得到、摸得着的具体实体,比如:“小布什”
“人”类
特征(属性)
年龄 体重
行为(方法)
衣 食 住 行
小布什 普京 克林顿 ……
Java 是面向对象的语言
➢所有Java程序都以类class为组织单元 ➢关键字class定义自定义的数据类型
b(); //调用b()
}
2、类Student的方法a()调用类Teacher public void a(){
的方法b(),先创建类对象,然后使用“.” 调用
Teacher t = new Teacher(); t.b(); //调用Teacher类的b()
}
变量作用域3-1
public class AutoLion { String color = "黄色";
方法的返回值
➢两种情况
➢如果方法具有返回值,方法中必须使用关键字return返回该值,返回类型 为该返回值的类型
return 表达式; ➢如果方法没有返回值,返回类型为void
public class Student{ String name = "张三"; public void getName(){
String 使用class定义的类型
Student Teacher YuntuSchool 数组
引用数据类型
按此按钮, 狮子开始跑
类的方法
➢写出狮子对象的“跑”方法 ➢写出狮子对象的“叫”方法
电动玩具狮子 属性: 颜色:黄色
行为: 跑 叫
类的方法示例
AutoLion类代码实现
public class Au返to回Lio类n型{ String color = "黄色";
}
可以调用吗?
public String showLion() { //方法4:输出类的描述信息 return "这是一个" + getColor() + "的玩具狮子!叫声是" + sound ;
return "这是一个" + getColor() + "的玩具狮子!" ;
} }
演示示例2:设置断点演示方法调用执行过程
方法调用小结
➢方法之间允许相互调用,不需要知道方法的具体实现,提高了效 率
情况
举例
1、类Student 的方法a()调用Student类 public void a(){
的方法b(),直接调用
return schoolName + "培训Yuntu学员" + "\n" + "配备:"+ classNum + "教" + labNum + "机";
}
}
定义类的showCenter()方法, 用于输出类相关的信息
代码错误
public class .Book { String bookName; String authorName; int pageNum; boolean isAvailable;
演示示例1:使用Eclipse创建YuntuSchool类框架
类示例2-2
成员变量
public class YuntuSchool {
//定义云图智联中心的属性
String schoolName; // 中心的全称
int classNum;
//教室的数目
int labNum;
//机房的数目
// 定义云图智联中心的方法 public void showCenter() {
public void run(){ //方法1:跑 System.out.println("正在以0.1米/秒的速度向前奔跑。");
}
public String bark(){ //方法2:叫 String sound = "吼" ; return sound;
}
public String getColor(){ //方法3:获得颜色属性 return color ;
return name;
编译错误
} …… }
返回类型要匹配
常见错误2-1
public class YuntuSchool{ …… public static void main(String[ ] args){ …… return "云图智联北京中心! "; }
}
返回类型是void 方法中不能有返回值
方法名称
public void run(){ System.out.println("正在以0.1米/秒的速度向前奔跑");
}
public String bark(){ String sound = "吼" ; return sound;
} }
方法体
如何定义类的方法
➢ 类的方法定义类的某种行为(或功能)
}
常见错误
类命名规则:
1、不能使用Java关键字 2、首字母可以为字母,也可以是“_”或“$ ”(建议不要这 样) 3、不能包含空格或“.”号
如何创建和使用对象
➢使用对象的步骤:
➢使用new创建类的一个对象
YuntuSchool center = new YuntuSchool();
➢使用对象:使用“.”进行以下操作
第四章 类、对象和方法
循环语句while、do-while、for的区别是什么?
回顾
写出运行结果