目录
1,方法调用
Java 支持两种调用方法的方式,根据方法是否返回值来选择。 当程序调用一个方法时,程序的控制权交给了被调用的方法。当被调用方法的返回语句执行或者到达方 法体闭括号时候交还控制权给程序。
当方法返回一个值的时候,方法调用通常被当做一个值。例如:
int xx=max(30,10)
Java语言中使用下述形式调用方法:对象名.方法名(实参列表) 如果方法返回值是void,方法调用一定是一条语句。例如,方法println返回void。
下面的调用是个语句:
public class test2 {
public static void main(String[] args) {
test();
}
public static void test() {
System.out.println("返回类型为void的调用方式");
}
}
下面是两种方式:
public class test {
public static void main(String[] args) {
int xx=max(30,10);
System.out.println(xx);
test();
}
//比大小方法
public static int max(int a,int b){
int result=0;
if (a==b){
return 0;//终止方法
}
if (a>b){
result=a;
}else {
result=b;
}
return result;
}
//返回值类型为void
public static void test(){
System.out.println("返回类型为void的调用方式");
}
}
这个程序包含 main 方法和 max 方法。main 方法是被 JVM 调用的,除此之外,main 方法和其它方法 没什么区别。JAVA中只有值传递!
main 方法的头部是不变的,如例子所示,带修饰符 public 和 static,返回 void 类型值,方法名字是 main,此外带个一个 String[] 类型参数。String[] 表明参数是字符串数组。
2,方法重载
上面使用的max方法仅仅适用于int型数据。但如果你想得到两个浮点类型数据的最大值呢? 解决方法是创建另一个有相同名字但参数不同的方法,如下面代码所示:
public static double max(double num1, double num2) {
if (num1 > num2)
return num1;
else
return num2;
}
public static int max(int num1, int num2) {
int result;
if (num1 > num2)
result = num1;
else
result = num2;
return result;
}
如果你调用max方法时传递的是int型参数,则 int型参数的max方法就会被调用; 如果传递的是double型参数,则double类型的max方法体会被调用,这叫做方法重载;
就是说一个类的两个方法拥有相同的名字,但是有不同的参数列表。
- Java编译器根据方法签名判断哪个方法应该被调用。
- 方法重载可以让程序更清晰易读。执行密切相关任务的方法应该使用相同的名字。
- 重载的方法必须拥有不同的参数列表。你不能仅仅依据修饰符或者返回类型的不同来重载方法。