所谓方法(Method):就是具有独立功能的一段代码。
1.方法的定义
方法的第一通常遵循以下形式。
[访问控制符] [修饰符] 返回值类型 方法名(参数类型 形式参数,参数类型 形式参数,…)
{
方法体
}
修饰符: public 、static 被称为修饰符(后续章节会详细讲解它们);
返回值类型: 用来说明该方法运算结果的类型。如果返回其他类型,编译就可能出错;
方法名: 它作为调用时引用方法的标识;
参数列表: 方法的参数个数可以是0个到多个,每个参数前面要声明参数的数据类型;每个参数要用逗号分开。也可以一个参数都没有。
方法体: 它是一个语句块,执行特定的功能操作。对于有返回值类型的方法,方法体当中最后一个语句是return关键字,它的作用是把方法的执行(运算)结果返回到方法外部。
return 表达式: 这里,进一步分析,return后面的表达式就是方法的返回值。需要注意表达式的类型,必须与方法头中声明的“返回类型”相匹配。
形式参数:在方法被调用时用于接受外部传入的变量
参数类型:就是该形式参数的数据类型
返回值:方法在执行完毕后返回给调用它的程序的数据
返回值类型:方法要返回的结果的数据类型。
可以看出,==一个方法最起码由以下四个部分组成。分别是:方法名字、参数列表、方法体和返回值类型(构造方法除外)。==
例如:以下方法。void是返回值类型,fn是方法名字,()是参数列表,{}是方法体。
void fn(){
}
在还没有正式讲解类和对象之前,我们暂时把所有的方法定义为public static 修饰的。方便我们去调用使用。
例如:分别定义一个求圆的面积和周长的方法,并且在主方法中调用输出结果。
public class Test {
public static double getArea(int r){
return Math.PI*r*r; //
}
public static double getCircle(int r){
return 2*Math.PI*r;
}
public static void main(String[] args) {
int r;
Scanner sc = new Scanner(System.in);
System.out.println("请您输入圆的半径:");
r = sc.nextInt();
//Math.round()是取整函数。
System.out.println("圆的周长是:" + Math.round(getCircle(r)));
System.out.println("圆的的面积是:" + Math.round(getArea(r)));
}
}
2.方法调用
所谓调用方法,其实就是给方法的入口传入一些值(参数),然后在出口得到方法执行的结果(返回值)。给方法传入参数的过程,称为“传参”。
所谓形参就是方法定义处的参数。 所谓实参就是方法调用处的参数。
==方法调用的过程就是把实参赋值给对应的形参并执行方法的过程。实参和形参的数量、类型必须匹配,方法执行过程中形参的改变不影响实参。==
例如:
public class Test {
public static void swap(int x,int y){ //这里是方法定义,所以x,y是形参
int temp;
temp = x;
x = y;
y = temp;
System.out.println("in swap: x=" + x);
System.out.println("in swap: y=" + y);
}
public static void main(String[] args) {
int x = 10;
int y = 7;
swap(x,y); //这里是方法调用,所以x,y是实参。
System.out.println("x=" + x);
System.out.println("y=" + y);
}
}
运行结果:
in swap: x=7
in swap: y=10
x=10
y=7
//说明形参的改变不影响实参。