方法北京理工大学计算机系 金旭亮第四讲
2009-7-29 北京理工大学计算机系 2
软件工程模块化原则
Modules(模块)
将一个复杂的系统划分为子模块,便于设计、
实现和维护分而歼之是百试百灵的法宝。毛泽东的军事指挥艺术
2009-7-29 北京理工大学计算机系 3
Java中的程序模块
Java中的程序模块:
方法


Java API 本身提供了大量类,程序员也可以开发自己的类
2009-7-29 北京理工大学计算机系 4
Boss
worker1 worker2 worker3
worker4 worker5
Boss要求 Worker去完成某项任务。他并不关心此工作是如何完成的,他只注重结果。
这个过程在计算机中被描述为方法调用( method call)。
我们看看 Java提供的方法实例 …… (见下一页)
方法与方法调用
2009-7-29 北京理工大学计算机系 5
Java提供的 Math类方法
Class java.lang.Math
提供了通用的数学函数
例如,求 900的平方根
Math.sqrt( 900.0 )
需要指出的是,这些数学方法都是静态方法。
所以可以用类名,方法名的方式直接调用
2009-7-29 北京理工大学计算机系 6
2009-7-29 北京理工大学计算机系 7
方法的定义
自定义各种方法:这是程序员在结构化编程时的主要工作。
在面向对象的时代,程序员除了要编写函数,更主要的精力则放在如何将这些函数合理地分配、
包装成类
从 JDK提供的数学方法类 Math我们可以知道,将方法放入类中,并将其定义为静态 (static)的是面向对象软件提供公共方法( public method)的基本作法。
2009-7-29 北京理工大学计算机系 8
示例,SquareIntegers.java
这个例子中,程序员自定义了一个求平方的方法 Square
2009-7-29 北京理工大学计算机系 9
方法的定义
语法格式,
返回值类型 方法名 (参数列表 )
{
语句 …
}
方法的返回值,
return表达式 ;
Maximum.java
这个例子中,程序员编写了一个自己的函数,用来找出三个数中的最大值
2009-7-29 北京理工大学计算机系 11
参数类型转换
示例,
System.out.println( Math.sqrt( 4 ) );
Math.sqrt( 4 )返回 double类型
被自动转为字串类型传送给
,System.out.println()”
2009-7-29 北京理工大学计算机系 12
指定如何转换类型而不致引起信息的损失类型 允许的类型转换操作
byte short,int,long,float or double
short int,long,float or double
char int,long,float or double
int long,float or double
long float or double
float Double
double None
boolean None
复习类型转换规则
2009-7-29 北京理工大学计算机系 13
Java方法示例:随机数生成
Math.random()
( int ) ( Math.random() * 6 )
产生 0 – 5之间的随机数
示例,RandomInteger.java
这个例子说明了随机数的使用方法。
随机数示例,RollDie.java
这个示例展示了利用随机数来模拟骰子滚动的统计结果。
巧妙地利用随机数,是很多游戏的核心控制
2009-7-29 北京理工大学计算机系 15
可变参数方法
JDK5.0支持可变参数的方法
实例,Test.java
2009-7-29 北京理工大学计算机系 16
课后作业用递归的方法解决汉诺塔问题。用 Java实现
(对小于 5的能求出解答)