什么是方法
1.方法是实现某个功能的语法块
2.方法在类中创建,在main()主方法之外
3.方法可以被反复调用,实现固定的功能,减少语句重复累赘
方法的语法格式
修饰符 返回值类型 方法名 ( [参数类型 参数名1,参数类型 参数名2,···] ) {
执行语句
·
·
·
return 返回值;
}
具体说明:
1.修饰符:很多,有对访问权限进行限定,有静态修饰符static,还有最终修饰符final。
2.返回值类型,对于方法最后要返回的值的数据类型进行限定。
3.参数类型:调用方法时要传入参数的数据类型的限定。
4.参数名:是一个变量,用于接收被调用方法是时传入的数据。
5.return:用于结束方法,同时传递返回的值。(如果没有返回值,返回类型要定义为void。)
6.返回值:调用方法结束是要返回的值,该值返回给调用者。
方法的具体例子
1.计算不同长宽矩形的面积
public static void main(String[] args) {
int area = getArea(3,4);//调用了getArea方法,所以area的值是该方法的返回值temp
int area1 = getArea(2,5);
int area2 = getArea(3,5);
System.out.println("这个矩形的面积是:"+area);
System.out.println("这个矩形的面积是:"+area1);
System.out.println("这个矩形的面积是:"+area2);
}
public static int getArea(int height,int weight){
int temp=height*weight;
return temp;
}
思路:
定义了一个getAge()方法用于求矩形的面积,参数height和weight分别用于接收调用方法时传入的高和宽,return语句用于返回计算所得的面积。
在main方法中通过调用getAge()方法时,传入的参数分别赋值给变量height和weight,并将weight*height的结果通过return语句返回,整个方法的调用过程结束,变量weight和height被释放。
2.方法重载
public static void main(String[] args) {
int result=add(1,2);
System.out.println("1+2="+result);
double result1=add(1,2.5);
System.out.println("1+2.5="+result1);
int result2=add(1,2,3);
System.out.println("1+2+3="+result2);
}
public static int add(int x,int y){
//这是一个两个int整数想加的方法
int result=x+y;
return result;
}
public static int add(int x,int y,int z){
//这是一个三个int整数想加的方法
int result=x+y;
return result;
}
public static double add(int x,double y){
//这是一个两int整数和double小数想加的方法
double result=x+y;
return result;
}
方法重载,允许定义多个相同方法名的方法,但是参数个数或类型必须不同。
当main方法调用相同方法名的某个方法时,会根据参数的类型或个数不同选择对应的方法体。
方法的重载与返回类型无关,只需要满足两个条件:1.方法名相同2.参数的类型或个数不同。
3.方法的递归
实现了从1~100的自然数相加:
下面的getSum方法用于计算1~n之间的自然数的和,在整个递归过程中getSum方法被调用了4次,每次调用时,n的值都会递减,当n的值为1时,所有递归调用的方法都会以相反的顺序相继结束,所有的返回值会进行累加。
public static void main(String[] args) {
int sum =getSum(100);
System.out.println("sum="+sum);
}
public static int getSum(int n){
if(n==1){
return 1;
}
int temp=getSum(n-1);
return temp+n;
}
在一个方法内部调用自身的过程,递归必须要有结束条件,不然就会陷入无限递归的状态,永远无法结束调用。