Java方法与方法重载
- 什么是方法
- 方法的重载
什么是方法
方法的定义:方法其实就是若干语句的功能集合。
方法的一般使用形式:
修饰符 返回值类型 方法名(参数类型 参数名1,参数类型 参数名2,…) {
执行语句
代码块;
return 返回值;
}
其中分为有返回值的方法和无返回值的方法:
1、无返回值的方法:
public void 方法名(){
//代码块
}
public 返回值类型 方法名() {
//代码块
return 返回值;
}
方法的具体语法格式如下:
①、修饰符:方法的修饰夫比较多,例如:对访问权限进行限定的修饰符、static修饰符、final修饰符等。
②、返回值类型:用于限定方法返回的数据类型。
③、参数类型:用于限定调用方法时传入参数的数据类型。
④、参数名:是一个变量,用于接收调用方法时传入的数据。
⑤、return关键字:用于返回i方法指定类型的值结束方法。
⑥、返回值:被return语句返回的值,该值会返回给调用者。
注:方法中的参数类型加参数名为参数列表,如果方法不需要接受任何参数,则参数列表为空,即()内为空.
方法的调用
public class method {
public static void main(String[] args) {
PrintRectangle(3,5);
PrintRectangle(2,4);
PrintRectangle(6,10);//调用printRectangle()方法
}
public static void PrintRectangle(int height,int width) {
//使用for()循环把*打印成矩形
for(int i = 0;i < height;i++) {
for(int j = 0;j < width;j++) {
System.out.print("*");
}
System.out.println();
}
System.out.println();
}
}
运行结果如图:
由代码可知,main()方法通过调用printRectangle()方法来实现矩形的打印。其中,当调用printRectangle()方法时,程序执行流程从main()方法跳转到了printRectangle()方法内部,程序为变量分配内存并把参数分别赋值给变量height和width,并在printRectangle()方法内部打印“*”矩形,然后就跳转至main()方法的调用处。
方法的重载
方法重载的定义:方法重载就是在同一作用域方法名相同但参数个数或者参数类型不同的方法。
public class heavyduty {
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);
}
//下面方法实现两数相加
public static int add(int x,int y) {
return x + y;
}
//下面的方法实现了三个整数相加
public static int add(int x,int y,int z) {
return x + y + z;
}
//下面的方法实现了两个小数相加
public static double add(double x,double y) {
return x + y;
}
}
在这个案例中,定义了三个add()方法,分别求出了两个小数,两个整数,三个整数的和。这三个add()方法就属于方法的重载。
方法的重载可以提高代码的可读性
方法重载的要求:
1、类名相同。
2、参数类型不同或参数变量个数可以不同。
方法重载的注意事项:
1、方法重载与返回值无关。
2、方法重载与变量标识符无关。
public static int add(int num1,int num2){
return num1 + num2;
}
public static double add(int num1,int num2){
return num1 + num2;
}
程序报错,可见方法重载与返回类型无关。
在这里,编译时错误优于运行时错误。 所以,如果你声明相同的方法具有相同的参数,java编译器就不知道执行哪个方法,造成不确定的错误
在Java中,main()方法也是可以进行重载的,你可以自定义你要进行重载的main()方法:main(int a),main(double b).