PAGE5
《面向对象程序设计》教案
第9讲
教学对象
计算机科学技术专业
授课内容
4.5方法设计
4.6案例学习——分数类Fraction的设计
课程标准
教学目标
(一)知识目标
1.掌握方法设计、参数传递
2.学会方法重载
(二)能力目标
1.能够熟练的定义方法实现代码的模块化
2.能够根据需要正确使用方法重载
教学方法
课前预习、课堂讲授、课堂和课后练习。
学时及分配(第1学时50分钟)
课堂讲授30分钟
课堂练习20分钟
4.5.1如何设计方法
4.5.2方法的调用
4.5.3方法重载
学时及分配(第2学时50分钟)
课堂讲授30分钟
课堂练习20分钟
4.5.4方法的参数传递
4.6案例学习——分数类Fraction的设计
知识点分析
重点:
方法设计
调用方法
难点:
方法参数传递
方法重载
教学过程设计
内容
方式
问题导入
在Java程序中,方法是类为用户提供的接口,用户使用方法操作对象。前面介绍了方法声明的格式,本节将学习如何设计方法、方法的重载、方法的参数传递等。
内容要点
4.5方法设计
4.5.1如何设计方法
设计方法包括方法的返回值、参数以及方法的实现等。下面重新设计了Account类中定义的withdraw()方法,这里考虑了取款时账户余额不足的问题,如图4-9所示。
1.方法头和方法签名
方法头是指方法的修饰符、返回值类型、方法名和方法的参数。这里的参数是形式参数(parameter),调用方法时指定的参数为实际参数(actualparameter)。
在一个类中可定义多个方法,我们通过方法签名来区分这些方法。方法签名(signature)是指方法名、参数个数、参数类型和参数顺序的组合。
注意,方法签名的定义不包括方法的返回值。方法签名将用在方法重载、方法覆盖和构造方法中。
2.方法返回值
方法的返回值是方法调用结束后返回给调用者的数据。很多方法需要返回一个数据,这时要指定方法返回值,具体是在声明方法时要指定返回值类型。有返回值的方法需要使用return语句将值返回给调用者,它的一般格式是:
returnexpression;
这里,expression是返回值的表达式,当调用该方法时,该表达式的值返回给调用者。例如,computeSalary()方法需返回总工资值,它的return语句如下:
returntotalSalary;
如果方法调用结束后不要求给调用者返回数据,则方法没有返回值,此时返回值类型用void表示,在方法体中可以使用return语句表示返回void,格式如下:
return;
注意,这里没有返回值,它仅表示将控制转回到调用处。
3.方法参数
方法可以没有参数,也可以有参数。没有参数的方法在定义时只需一对括号。例如,Employee类的sayHello()方法没有参数。
有参数的方法在定义时要指定参数的类型和名称,指定的参数称为形式参数。例如Employee类computeSalary()方法带两个参数,一个是int型,一个是double型。对带参数的方法,在调用方法时要为其传递实际参数。方法的参数类型可以是基本类型,也可以是引用类型。
4.方法体
方法声明的后面是一对花括号,花括号内部是方法体。方法体是对方法的实现,它包括局部变量的声明和所有合法的Java语句。
方法的实现是在方法体中通过编写有关的代码,实现方法所需要的功能。例如,在Employee类的computeSalary()方法是要计算员工的工资,因此通过有关公式计算得到结果,然后将其返回。方法体中可以包含多条语句。computeSalary()方法就包含如下3条语句。
doubletotalSalary;
totalSalary=salary+hours*rate;
returntotalSalary;
5.访问方法和修改方法
一般地,把能够返回成员变量值的方法称为访问方法(accessormethod),把能够修改成员变量值的方法称为修改方法(mutatormethod)。访问方法名一般为getXxx(),因此,访问方法也称getter方法。修改方法名一般为setXxx(),因此,修改方法也称setter方法。访问方法的返回值一般与原来的变量值类型相同,而修改方法的返回值为void。例如,在Employee类中可以定义下面两个方法:
name成员的修改方法publicvoidsetName(Stringname){
name成员的修改方