一、什么是方法
在java中方法是一种可以减少代码重复量的办法,可以类比于c++中的函数
比如下面的min方法
import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner cin=new Scanner(System.in);
int a=cin.nextInt(),b=cin.nextInt();
r=min(a,b);
System.out.println(r);
}
private static int min(int a,int b) {
if(a<b)return a;
else
return b;
}
}
其中min方法部分
private static int min(int a,int b) {
if(a<b)return a;
else
return b;
}
private static 是修饰词,表示此方法权限如何,这在后边讲到类的时候会详细讲,int 是指方法返回值数据类型,比如int是指整型数据,double是指双位数据(小数数据)void时无需返回值 ,min为方法名,括号中的a,b为方法参数,大括号中间的为方法主体,其中return 是指定返回某一数值,例如这个min方法中就返回了b
二、什么是重载
刚才讲方法的时候说了定义方法时需要提前定义参数的数据类型,比如上面min方法中a,b就是int 类型的数值。但是有时候一些方法所进行的操作所需的数据类型可能不止一种,比如将两个数相加,按照正常思维来说无论是否为整形或者为小数都是可以相加的,例如5+6=11 6.0+5=11.0 6.0+5.0=11.0(使用加法演示只是方便大家理解重载的用法,,,,,)
如果按照c++的编程习惯需要建立三个不同名的函数每个函数对应不同的参数数据类型
java代码如下:
import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) {
int sum1=add1(1,2);
int sum2=add2(1,2,3);
double sum3=add3(1.2,2.3);
System.out.println("sum1="+sum1);
System.out.println("sum2="+sum2);
System.out.println("sum3="+sum3);
}
private static double add3(double d, double e) {
return d+e;
}
private static int add2(int i, int j, int k) {
return i+j+k;
}
private static int add1(int i, int j) {
return i+j;
}
}
这样的话就建立需要三个不同名称的方法,也许三个你还可以分清,调用时也不是很难,但是如果更多的呢,这样的话就用到了重载。
使用重载后的java代码如下:
import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) {
int sum1=add(1,2);
int sum2=add(1,2,3);
double sum3=add(1.2,2.3);
System.out.println("sum1="+sum1);
System.out.println("sum2="+sum2);
System.out.println("sum3="+sum3);
}
private static double add(double d, double e) {
return d+e;
}
private static int add(int i, int j, int k) {
return i+j+k;
}
private static int add(int i, int j) {
return i+j;
}
}
仔细观察你会发现重载与不重载的差别只在于一点,重载过后的方法只有一个方法名但是有多个方法定义,这样的话就便于我们在使用加法函数时直接调用add函数就行,不用再去区分数值适用于add1或者add2或者add3