java方法重载和可变参数

方法重载

1.方法重载如何利用和利用场景

多个方法在同一个类中

多个方法名字相同

多个方法的参数类型不同,个数不同;

2.代码示例

class math{
    public int TwoNumber(int a,int b){
        return a+b;
    }
    public double TwoNumber(double a,double b){
        return a*b;
    }
}

以上代码是java方法重载的一个例子,就是方法名字相同但就是参数不一样

写一个完整代码,代码如下

package Methodoverload;

class math{
    public int TwoNumber(int a,int b){
        return a+b;
    }
    public double TwoNumber(double a,double b){
        return a*b;
    }
    public String toString(){
        return "math instance";
    }
}
public class test1 {
    public static void main(String args[])
    {
        math a = new math();
        int c=a.TwoNumber(1,1);
        double k=a.TwoNumber(1.1,2.2);
        System.out.println(c);  // Print the result of two numbers addition
        System.out.println(k);  // Print the result of two numbers multiplication
        System.out.println(a);  // Print the math instance using toString() method
    }
}

这是一个方法重载的完整代码

3.需要注意的点

1.方法重载中如果两个方法名字相同,参数个数相同,并且参数类型相同,那就不能构成方法重载,比如说将上面的代码改一下

class math{
    public int TwoNumber(int a,int b){
        return a+b;
    }
    public int TwoNumber(int c,int d){
        return c*d;
    }
    public String toString(){
        return "math instance";
    }
}

就比如以上代码就会报错

java: 已在类 Methodoverload.math中定义了方法 TwoNumber(int,int)

这是报错的类型

2.方法重载只会对参数和方法名进行识别,不能以返回值去判断进行判断方法识别

class math{
    public int TwoNumber(int a,int b){
        return a+b;
    }
    public void TwoNumber(int c,int d){
        c=c*d;
    }
    public String toString(){
        return "math instance";
    }
}

就比如以上代码,java报错原因

java: 已在类 Methodoverload.math中定义了方法 TwoNumber(int,int)

以上就是java方法重载

java可变参数

1.可变参数利用场景

利用场景就是java中,可以将名称相同,功能相同,但是形参个数不同的多个函数,封装为某个类中的一个函数。

2.代码示例

    public int T(int ... a){
        int i,c=0;
        for(i=0;i<a.length;i++){
            c=c+a[i];
        }
        return c;
    }

int... a 就代表着可变参数

具体代码

package Methodoverload;

class score{
    public int T(int ... a){
        int i,c=0;
        for(i=0;i<a.length;i++){
            c=c+a[i];
        }
        return c;
    }
}
public class test2 {
    public static void main(String args[]){
        score a=new score();
        int b=a.T(1,2,3);
        System.out.println(b);
    }
}

以上代码就是求和一段代码,而a.T(),括号中的数是可变的,可以是1,2,3也可以是1,2 就是它的参数的数量是可变的

3.注意事项

class score{
    public int T(int b,int ... a){
        int i,c=0;
        for(i=0;i<a.length;i++){
            c=c+a[i];
        }
        return c;
    }
}

这样也可以,就如上面的示例中加了一个int b,所以就是以上例子可变参数a要加在不可变参数b的后面

2.一个形参列表只能出现一个可变参数

这的意思就很明显了一个方法,一个形参列表中只能有一个可变参数,可以有多个不可变参数

以上就是不可变参数的知识

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值