假设有一个游戏程序,程序在运行过程中要不断地发射炮弹。发射炮弹的动作需要编写100 行的代码,在每次实现发射炮弹的地方都需要重复地编写这100 行代码,这样程序会变得很臃肿,可读性也非常差。为了解决代码重复编写的问题,可以将发射炮弹的代码提取出来放在一个{}中,并为这段代码起个名字,这样在每次发射炮弹的地方通过这个名字来调用发射炮弹的代码就可以了。此过程中,所提取出来的代码可以被看作程序中定义的一个方法,程序在需要发射炮弹时调用该方法即可。
先看一个类的设计例子,以设计学生类为例,可以先设计一个学生类(Student),在这个类中定义两个属性name、age 分别表示学生的姓名和年龄,定义一个方法introduce()表示学生做自我介绍。根据上面的描述设计出来的Student 类如下所示:
在上述Student 类中,定义的两个属性name 和age 就称为类的成员变量。其中的name属性为String 类型,在Java 中使用String 类型的实例对象表示一个字符串。例如:
String name=”王勇”;
introduce()就被称为Student 类中的成员方法。
如何理解成员方法这个概念,给大家举个通俗的示例,如程序员调用方法,给方法必要的输入,方法返回结果。成员方法也叫成员函数,注意不要混淆这两个名词。定义成员方法的语法格式:
(1)参数列表:表示成员函数输入。
(2)数据类型(返回类型):表示成员函数输出。
(3)函数主体:表示为了实现某一功能代码块。
如:public int test(int a);这句话的作用是声明该方法,声明的格式为:
访问修饰符数据类型函数名(参数列表);
类的成员方法(函数)--特别说明
(1)方法的参数列表可以是多个,并且数据类型可以是任意的类型int float double char..。
(2)方法可以没有返回值。返回类型可以是任意的数据类型(int,float,double,char..),也可以没有返回值,void 表示没有返回值。
在Java 中,声明一个方法的具体语法格式可以更完善为如下所示:
修饰符:对访问权限的限定,例如,public、static 都是修饰符。
返回值类型:用于限定方法返回值的数据类型。
参数类型:用于限定调用方法时传入参数的数据类型。
参数名:是一个变量,用于接收调用方法时传入的数据。
return 关键字:用于结束方法以及返回方法指定类型的值。
返回值:被return 语句返回的值,该值会返回调用者。
为了让读者能更加清楚地了解方法的使用,下面我们用不使用方法和使用方法实现打印三个长宽不同的矩形。
【例4.9】不使用方法实现打印三个长宽不同的矩形,如文件4-9 所示。
文件4-9 Example09.java
执行结果
【例4.10】定义一个打印矩形的方法,并在程序中调用三次完成三个矩形的打印,如文件4-10 所示。
文件4-10 Example10.java
执行结果
【例4.11】通过使用有返回值的方法求矩形的面积,如文件4-11 所示。
文件4-11 Example11.java
执行结果
The areais 18(www.xing528.com)
【例4.12】类的定义及成员方法调用示例,如文件4-12 所示。
文件4-12 Example12.java
执行结果
注意:返回类型和返回结果的类型要一致;在调用某个成员方法的时候,给出的具体数值的个数和类型要相匹配。
【例4.13】编写一个成员函数cf(),从键盘输入一个整数(1~9),打印出对应的乘法表,如文件4-13 所示。
文件4-13 Example12.java
执行结果
【例4.14】用成员变量、成员方法设计计算机类,要求如下:
属性:品牌(brand)、颜色(color)、cpu 型号(cpu)、内存容量(memory)、硬盘大小(harddisk)、价格(price)、工作状态(work);
方法:打开(Open)、关闭(Close)、休眠(Sleep);
创建一个计算机对象,调用打开,关闭方法。
计算机类与对象的代码,如文件4-14 所示。
文件4-14 Example14.java
执行结果
2. 方法的重载(overload)
假设要在程序中实现一个对数字求和的方法,由于参与求和数字的个数和类型都不确定,因此,要针对不同的情况去设计不同的方法。
方法重载的概念:Java 中允许在一个程序中定义多个名称相同的方法,但是参数的类型或个数必须不同,这就是方法的重载。简单来说:方法重载就是在类的同一种功能的多种实现方式,到底采用哪种方式,取决于调用者给出的参数。
方法重载注意事项:
(1)方法名相同。
(2)方法的参数类型、个数、顺序至少有一项不同。
(3)方法返回类型可以不同(只是返回类型不一样,不能构成重载)。
(4)方法的修饰符可以不同(只是控制访问修饰符不同,不能构成重载)。
为了让大家能更清楚地理解方法的重载,下面我们分别用不同方法和方法重载形式实现数据相加的功能。
【例4.15】调用不同方法实现数据相加案例演示,如文件4-15 所示。
文件4-15 Example15.java
执行结果
Java 允许在一个程序中定义多个名称相同的方法,但是参数的类型或个数必须不同,这就是方法的重载。
【例4.16】用方法的重载改写【例4.15】演示案例,如文件4-16 所示。
文件4-16 Example16.java
执行结果
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。