方法
我们在编程过程中有的时候会遇到一些固定套路的代码,我们可以把这些代码封装成方法,这样我们后面去使用的时候就会更加的方便。并且代码也会更简洁,代码复用性更高。
方法的定义格式
修饰符 返回值类型 方法名(参数类型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...);
注意
传参数的时候方法定义里有几个参数就传几个参数.方法定义的时候参数是什么类型就传什么类型.<br />
如果方法有返回值,一般是用变量来接收返回值,返回值是什么类型,就用什么类型的变量来接收。
例如:
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){}
}
小思考
1.一个方法能不能有两个返回值?(PS:学会用代码去验证你的想法)
答案:不能直接返回,可以把结果放入数组中返回
2.没有返回值的方法中能不能写return?
答案: 可以,可以用来结束方法。但是return的后面不能跟数据;
3.看看下面代码的输出结果是什么?
public static void main(String[] args) {
int a = 10;
int b = 20;
System.out.println("a="+a);
System.out.println("b="+b);
change(a,b);
System.out.println("方法调用后a="+a);
System.out.println("方法调用后b="+b);
}
public static void change(int a,int b){
int temp = a;//int temp = 10;
a = b;//a = 20;
b = temp;// b = 10;
}
4.看看下面代码的输出结果是什么?
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中方法调用的时候,形参的改变会不会影响实参?
答:如果方法的参数是基本数据类型,形参的改变不会影响实参。如果方法的参数是引用数据类型,形参的改变会影响实参。
作业
看看下面代码的输出结果是什么?
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){
arr = new int[2];
arr[0] = 2;
arr[1] = 1;
}