6.方法重载
6.1方法重载概述
方法重载指同一个类中定义的多个方法之间的关系,满足下列条件的多个方法相互重载
- 多个方法在用一个类中
- 多个方法具有相同的方法名
- 多个方法的参数不相同,类型不同或者数量不同
6.2 方法重载的特点
- 重载仅对应方法的定义,与方法的调用无关,调用方式参照格式标准
- 重载仅针对同一个类中方法的名称与参数进行识别,与返回值无关,换句话不能通过返回值来判断两个方法是否相互构成重载。
/*
- 多个方法在用一个类中
- 多个方法具有相同的方法名
- 多个方法的参数不相同,类型不同或者数量不同
*/
public class MethodDemo08 {
public static void main(String[] args) {
int result =sum(10, 20);
System.out.println(result);
double result1 =sum(10.0, 20.0);
System.out.println(result1);
int result2 =sum(10, 20,30);
System.out.println(result2);
}
//需求1:求两个int类型数据和方法
public static int sum(int a ,int b ){
return a+b;
}
//需求2:求两个double类型数据和方法
public static double sum(double a ,double b ){
return a + b;
}
//需求3:求三个int类型数据和方法
public static int sum(int a ,int b, int c){
return a+b+c;
}
}
- 与返回值无关
- 在调用的时候,Java虚拟机会通过参数的不用来区分同名的方法
6.3 方法重载练习
public class MethodDemo09 {
/*
方法重载练习
*/
public static void main(String[] args) {
System.out.println(compare(10, 20));
System.out.println(compare((byte)10, (byte)20));
System.out.println(compare((short)10, (short)20));
System.out.println(compare(10l, 20l));
}
public static boolean compare(int a,int b){
System.out.println("int");
return a==b;
}
public static boolean compare(long a,long b){
System.out.println("long");
return a==b;
}
public static boolean compare(byte a,byte b){
System.out.println("byte");
return a==b;
}
public static boolean compare(short a,short b){
System.out.println("short");
return a==b;
}
}
7.方法的参数传递
7.1方法的参数传递(基本类型)
//方法的参数传递(基本类型)
public class MethodDemo10 {
public static void main(String[] args) {
int number =100;
System.out.println("调用change方法前:"+number);
change(number);
System.out.println("调用change方法后:"+number);
}
public static void change(int number){
number = 200;
}
}
7.2 方法的参数传递(引用方法)
对于引用类型的参数,形式参数的改变,影响实际参数的值
public class MethodDemo11 {
public static void main(String[] args) {
int[]arr ={10,20,30};
System.out.println("调用change方法前:"+arr[1]);
change(arr);
System.out.println("调用change方法后"+arr[1]);
}
public static void change(int[]arr){
arr[1]=200;
}
}