避免带有变长参数的方法重载

本文介绍了Java 5中引入的变长参数特性及其使用规则,通过示例代码展示了如何利用变长参数实现方法的灵活调用,并解释了方法重载与变长参数之间的关系。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Java5引入了变长参数,是为了更好地提高方法的复用性,让方法的调用者可以传递多个实参数量,这些参数要遵循一些规则,比如变长参数必须是方法中的最后一个参数;一个方法不能定义多个变长参数等,这些基本规则需要牢记。

import java.text.NumberFormat;
public class Client{
public void calPrice(int price,int discount){
float knockdownPrice = price * discount /100.0F;
System.out.println("calPrice:"+formateCurrentcy(knockdownPrice));
}

public void calPrice(int price,int... discounts){
float knockdownPrice = price;
for(int discount:discounts){
knockdownPrice = knockdownPrice * discount / 100;
}
System.out.println("moreCalPrice:"+formateCurrentcy(knockdownPrice));
}
private String formateCurrentcy(float price){
return NumberFormat.getCurrencyInstance().format(price/100);
}
public static void main(String args[]){
Client client = new Client();
client.calPrice(49900,75);
}
}

程序运行结果是:¥374.25

程序有两个相同的calPrice()方法,但是他们的参数不同,所以他们形成了方法重载。java在编译的时候,会先根据实参的数量和类型来进行编译,也就是查到calPrice(int price , int discount)方法,而且确认他是否符合方法签名的条件。  
连个重载方法的第二个参数,一个是int的数据类型,一个数组对象。java编译器总是从最简单的数据类型开始编译,只要符合编译条件的即可通过

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值