方法的重载
重载就是在一个类中,有相同的函数名称,但形参不同的函数 方法的重载的规则:
方法名称必须相同 参数列表必须不同(个数不同、或类型不同、参数排列顺序不同等) 方法的返回类型可以相同也可以不相同 仅仅返回类型不同不足以成为方法的重载
实现理论: 方法名称相同时,编译器会根据调用方法的参数个数、参数类型等去逐个匹配,以选择对应的方法,如果匹配失败,则编译器报错
示例如下:
package com. qianchang. method ;
public class Demo05 {
public static void main ( String [ ] args) {
int max= max ( 1 , 1 ) ;
System . out. println ( max) ;
System . out. println ( "=====================" ) ;
double ma= max ( 1.0 , 2.0 ) ;
System . out. println ( ma) ;
}
public static int max ( int num1, int num2) {
int result= 0 ;
if ( num1== num2) {
System . out. println ( "num1==num2" ) ;
return 0 ;
}
if ( num1> num2) {
result= num1;
} else {
result= num2;
}
return result;
}
public static double max ( double num1, double num2) {
double result= 0.0 ;
if ( num1== num2) {
System . out. println ( "num1==num2" ) ;
return 0 ;
}
if ( num1> num2) {
result= num1;
} else {
result= num2;
}
return result;
}
}
命令行传递参数
代码如下:
package com. qianchang. method ;
public class Demo06 {
public static void main ( String [ ] args) {
for ( int i= 0 ; i< args. length; i++ ) {
System . out. println ( "args[" + i+ "]:" + args[ i] ) ;
}
}
}
可变参数
jdk1.5开始,Java支持传递同类型的可变参数给方法 在方法声明中,在指定参数类型后加一个省略号(···) 一个方法中只能指定一个可变参数,它必须是方法的最后一个参数,任何普通的参数必须在它之前声明
示例如下
package com. qianchang. method ;
public class Demo07 {
public static void main ( String [ ] args) {
Demo07 demo07 = new Demo07 ( ) ;
demo07. test ( 12 , 13 , 25 , 36 , 88 ) ;
}
public void test ( int . . . i) {
System . out. println ( i[ 0 ] ) ;
System . out. println ( i[ 1 ] ) ;
System . out. println ( i[ 2 ] ) ;
System . out. println ( i[ 4 ] ) ;
System . out. println ( i[ 3 ] ) ;
}
}
package com. qianchang. method ;
public class Demo08 {
public static void main ( String [ ] args) {
printMax ( 55 , 44 , 33 , 67 , 99 ) ;
printMax ( new double [ ] { 1 , 2 , 3 } ) ;
}
public static void printMax ( double . . . numbers) {
if ( numbers. length== 0 ) {
System . out. println ( "没有参数" ) ;
return ;
}
double result= numbers[ 0 ] ;
for ( int i= 1 ; i< numbers. length; i++ ) {
if ( numbers[ i] > result) {
result= numbers[ i] ;
}
}
System . out. println ( "最大值是:" + result) ;
}
}