我们在编程过程中有的时候会遇到一些固定套路的代码,我们可以把这些代码封装成方法,这样我们后面去使用的时候就会更加的方便。并且代码也会更简洁,代码复用性更高。
方法的定义格式
修饰符 返回值类型 方法名(参数类型1 参数名1,参数类型2 参数名2,....){
方法体;
return 返回值;
}
修饰符: 目前阶段使用public static 后期学完权限修饰符和static等修饰符后可以灵活使用
参数: 执行方法需要的数据
返回值: 方法执行完后得到的结果
方法体:方法中的代码
返回值类型:返回值执行完后结果的数据类型,如果没有结果就写成void
例如:
public static void printInt(int num){
System.out.println(num);
}
public static int getSum(int a,int b){
return a+b;
}
方法的调用格式
方法名(参数1,参数2...);
注意
传参数的时候方法定义里有几个参数就传几个参数.方法定义的时候参数是什么类型就传什么类型.
如果方法有返回值,一般是用变量来接收返回值,返回值是什么类型,就用什么类型的变量来接收。
例如:
public class Demo{
public static void printInt(int num){
System.out.println(num);
}
public static int getSum(int a,int b){
return a+b;
}
public static void main(String[] args){
printInt(10);
printInt(20);
int sum = getSum(1,2);
}
}
return的作用
1.返回方法的返回值
2. 结束方法(reutrn执行后整个方法执行结束)
方法重载
定义:在同一个类中,方法名相同,参数列表不同的方法才叫方法重载(与返回值无关)
参数列表不同:1. 参数类型不同 2.参数个数不同 3.参数顺序不同
如何判断参数列表是否相同?把参数类型全部拼接成一个字符串,如果字符串的内容不同就算参数列表不同。
public class Demo{
public int test(int a,int b){} // intint
public void test(int a,int b){}//错
public void test(int a,int b,int c){}
public void test(int x,int y){}//错
public void test(int a,double b){}
public void test(double a,int b){}
public void test(double a,double b){}
}
看看下面代码的输出结果是什么?
public static void main(String[] args) {
int[] arr = {1,2}
System.out.println("arr[0]="+arr[0]);
System.out.println("arr[1]="+arr[1]);
change(arr);
System.out.println("方法调用后arr[0]="+arr[0]);
System.out.println("方法调用后arr[1]="+arr[1]);
}
public static void change(int[] arr){
int temp = arr[0];
arr[0] = arr[1];
arr[1] = temp;
}
问题:java中方法调用的时候,形参的改变会不会影响实参?
答:如果方法的参数是基本数据类型,形参的改变不会影响实参。如果方法的参数是引用数据类型,形参的改变会影响实参。