关于方法、方法重载和方法参数的问题
1、方法:
相对独立的代码块组成的整体,成为一个代码集。
定义格式:
public static 返回值类型 方法名(参数类型 参数一,参数类型 参数二) {
方法体;
return 值;
}
调用格式:
如果返回值类型为void :
方法名(参数一,参数二);
如果返回值类型不为void :
返回值类型 变量名 = 方法名(参数一,参数二);
System.out.println(方法名(参数一,参数二));
注意点:
1、方法一定要先定义,在调用;
2、方法和方法之间是平级关系,一定不能嵌套;
3、如果方法的返回值类型不是void,就必须有return语句;
如果方法的返回值类型是void,也可以有return语句(表示结束方法),但是后面不能写值;
4、方法的参数可以是任意类型,任意个数;
5、返回值类型可以是任意类型,但是只能有一个。
2、方法重载:
在同一个类中,多个方法之间方法名形同,参数不同(类型不同,个数不同),与返回值无关,与参数名无关。
public static void sum(int a,int b);
public static int sum(int c,int d); //不是方法重载
public static void sum(int a;int b);
public static void sum(int c,double d); //是方法重载
好处:方法重载不用我们自己写,在java的底层设计中有大量的方法重载,让我们程序员在使用的时候减轻记忆负担。
3、方法参数的区别:
基本类型:形参的改变不会影响实际参数
public static void main(String args[]) {
int a = 10;
System.out.println("在change之前" + a); //10
change(a);
System.out.println("在change之后" + a); //10
}
public static void change(int b) {
b = 20;
}
引用类型:形参的改变会影响实际参数(字符串除外)
public static void main(String args[]){
int[] arr = {10,20,30};
System.out.println("在change之前:" + arr[0]); //10
change(arr);
System.out.println("在change之后:" + arr[0]); //100
}
public static void change(int[] brr) {
brr[0] = 100;
}