方法的声明包含方法头和方法体两部分,方法的声明格式如下:
[修饰符>]<返回类型> <方法名> ([参数列表]){方法体}
方法声明说明如下:
(1)方法声明包括方法头和方法体两部分,其中方法头包括修饰符、返回类型、方法名和参数列表;方法体包括在花括号内的声明部分和语句部分,用于描述方法的功能。
(2)修饰符,表示方法的访问权限。修饰符有private、缺省访问修饰符、protected 和publico
(3)返回类型,为该方法返回值的类型,如该方法没有返回值,则方法的返回类型为void。
(4)参数列表,指定在调用时,应该传递的参数的个数和类型。参数列表如果包含多个参数,相邻的参数之间用逗号隔开,此处的参数在定义时并没有分配存储单元,只有在运行时间才分配,所以称为形式参数。方法也可以没有参数,称为无参方法。注意无参方法后面的一对圆括号不能省略。
(5)对于有返回值的方法,方法体中至少有一条return语句,形式为return (表达式)。当调用该方法时,表达式的值就是方法的返回值,方法返回值的类型应和表达式的类型一致。
(6)方法不能嵌套定义,即不能在方法中再声明其他的方法。
在程序中,方法是不可或缺的。通过使用方法可以完成特定的功能,方法一旦定义, 就可以在不同的程序中多次调用,这样可以增强程序的可读性和可重用性,提高编程的效率。
但对于初学者而言,使用方法时经常出现错误,尤其是在方法的声明和调用以及参数传递方面,下面我们将详细讲解方法的使用。
在Hero处声明一个方法, 该方法用于计算当前英雄的血量
public class Hero {
//定义英雄战斗方法
public void battle(){
}
}由于main() 方法是程序的入口,如果在类中调用指定方法, 则按照如下步骤进行操作
1) 在类的main() 方法中创建可以调用方法的实例。
2)将实例赋值给指定的引用变量,通过引用“变量.方法名”的形式调用方法
调用Hero类中的battle()方法的具体操作见示例
示例:
public class Hero{
String name;
int. age;
public void battle(){
System.out.println(name+"在肆无忌惮地战斗,他的年龄只有"+age+",可他的血量只有1%了");
public static void main(String[] args) {
Hero hero = new Hero();//创建英雄对象
hero.name='暗夜魔王;//为name属性赋值
hero.age = 15;//为age属性赋值
hero. battle();//使用该对象的batte()方法
}
}
方法参数传递
参数的传递是指实际参数向形参值的传递的过程。如果声明方法时包含形参的声明,则调用方法时必须为这些形参指定参数值,调用方法时实际传给形参的参数值被称为实参。
那么,实参是如何传递给方法的?这是由Java方法的参数传递机制所控制的,Java中方法参数传递方式只有种,即值传递。所谓值传违就是将实参的副本(复制品)传递给形参,而实参本身不会受到任何影响。
public class Parameter {
//该方法用于在方法中互换形参值
public void change(String x, String y){
String temp; //定义- 一个临时变量
System. out println(***形参改变之前*”);
System. out. println("x="+X+"\t"+'y= +y);
//形参值互换
temp=x;//将x值赋值给变量temp
X=y;//将变量y值赋值给变量x
y=temp;//将temp值赋值给变量y
System.out.println(***形参值互换后..*);System. out printn'x='+x+"\t*+'y=" +y);
}
publicstatic void main(String[] args){
Parameter param=new Parameter();//创建Parameter实例
String a="10",b="20";
System. out printin("---调用change()方法前-- - ");
System.out. printn('a='+a+"'t"+"b='+b);
param.change(a, b); // 调用方法
System.out.println("---调用change()方法后-- ");
System..Out println("a="+a+"\t"+"b="+b);
}
}