【第四章 方法重载、可变个数形参】

第四章 方法重载、可变个数形参

1.方法的重载
①定义:在同一个类中,允许存在一个以上的同名方法,只要它们的参数个数或者参数类型不同即可。
②“两同一不同”:同一个类、相同的方法名;
参数列表不同、参数个数不同、参数类型不同。
③特点:与返回值类型无关,只看参数列表,且参数列表必须不同。(参数个数或参数类型)。调用时,根据方法参数列表的不同来区别。
④判断方法是否重载,跟方法的权限修饰符,返回值类型,形参变量名,方法体都没有关系。
⑤在通过对象调用方法时,如何确定某一个指定方法:方法名->参数列表。

package day41;
/**
 * @author 26312
 */
public class OverLoadTest {
	public static void main(String[] args) {
		OverLoadTest test=new OverLoadTest();
		test.getSum(1, 2);//1
	}
	//如下的四个方法构成重载
	public void getSum(int i,int j) {//优先选择
		System.out.println("1");
	}
	public void getSum(double d1,double d2) {
		System.out.println("2");
	}
	public void getSum(int i,String s) {
		System.out.println("3");
	}
	public void getSum(String s,int i) {
		System.out.println("4");
	}
	//如下两个方法与方法一重复,默认参数列表相同
	//public int getSum(int i,int j) {
	//	System.out.println(i+j);
	//}
	//public int getSum(int m,int n) {
	//	System.out.println(m+n);
	//}
}

体会方法的重载,如下:

package day41;
/**
 * 1.编写程序,定义三个重载方法并调用。方法名为mOL。三个方法分别接收一个int参数、两个int参数、
 * 一个字符串参数。分别执行平方运算并输出结果,相乘并输出结果,输出字符串信息。在主类的main ()方法
 * 中分别用参数区别调用三个方法。
   2.定义三个重载方法max(),第一个方法求两个int值中的最大值,第二个方法求两个double值中的最大值,
   第三个方法求三个double值中的最大值,并分别调用三个方法。
 * @author 26312
 */
public class OverLoadExer {
	
	//1.
	public void mOL(int i) {
		System.out.println(i*i);
	}
	public void mOL(int i,int j) {
		System.out.println(i*j);
	}
	public void mOL(String s ) {
		System.out.println(s);
	}
	//2.
	public int max(int i,int j) {
		return (i>j)?i:j;
	}
	public double max(double i,double j) {
		return (i>j)?i:j;
	}
	public double max(double i,double j,double k) {
		double max=(i>j)?i:j;
		return (max>k)?max:k;
	}
}

2.可变个数形参的方法:
①JDK 5.0新增内容
②具体使用:
(1)可变个数形参的个数: 数据类型…变量名;
(2)当调用可变个数形参的方法时,传入的形参可以是0个,1个,2个,,,,多个;
(3)可变个数形参的方法与本类中方法名相同,形参不同的方法之间构成重载;
(4)可变个数形参的方法与本类中方法名相同,形参类型也相同的数组之间不构成重载。
(5)可变个数形参在方法的形参中,必须声明在末尾。
(6)可变个数形参在方法的形参中,最多只能声明一个可变形参。

package day41;
/**
 * @author 26312
  */
public class MethodArgsTest {
	public static void main(String[] args) {
		MethodArgsTest test=new MethodArgsTest();
		test.show(12);
		test.show("hello","world");
	}
	public void show(int i) {
		
	}
	public void show(String s) {
		System.out.println("show String");
	}
	public void show(String ...strs) {
		System.out.println("show(String...strs)");
		for(int i=0;i<strs.length;i++) {
			System.out.println(strs[i]);
		}
	}
	//public void show(String strs[]) {
	//	System.out.println("show(String...strs)");
	//}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值