如何调用参数短的方法?

时间:2015-11-18 06:29:28

标签: java methods overloading short

我在java中做了一个关于重载,覆盖和接口的赋值。 其中一个部分要求我创建重载方法,包括short,int,float和double。这些方法只需要对数字求和即可。

这就是我被困的地方:

public short sum(short x, short y)
{
    System.out.println("I'm method on line 10");
    return x+y;
}

我有这个方法,eclipse通过建议我做一个(int)类型转换来保持标记。如果我这样做,就会破坏这项任务的目的。所以在做了一些谷歌搜索之后,我写了这个:

public short sum(short x, short y)
{
    System.out.println("I'm method on line 10");
    short t = (short)(x+y);
    return t;
}

在我的main方法中,我创建了一个对象:

public static void main(String[] args) 
{
    OverloadingSum obj1 = new OverloadingSum();     
    System.out.println(obj1.sum(3,3));
}

所以,当我运行它时,它告诉我它使用int sum(int x,int y)方法作为值(3,3)而不是我希望它使用的短和方法。我的问题是我可以测试哪些数字,以便调用short方法而不是int方法。

4 个答案:

答案 0 :(得分:2)

为此,您可以将参数显式转换为short以强制调用short方法。

例如,更改:

System.out.println(obj1.sum(3,3));

为:

System.out.println(obj1.sum((short) 3,(short) 3));

答案 1 :(得分:1)

obj1.sum(3,3)

您需要投射值:

obj1.sum((short)3,(short)3)

或使用变量:

short v1 = 3;
short v2 = 3;
// ...
... obj1.sum(v1,v2)...

答案 2 :(得分:0)

传递参数时需要

类型转换,使用:

public static void main(String[] args) 
{
OverloadingSum obj1 = new OverloadingSum();     
System.out.println(obj1.sum((short)3,(short)3));
}

整数文字隐式具有int类型,并且从int转换为byte或short可能会丢失信息,因此需要显式转换。

答案 3 :(得分:0)

您可以尝试这样的事情

public static void main(String[] args) {
        short x=3;
        short y=3;
        addShort(x,y);

    }

    public static void addShort(short a,short b)
    {
        short c=(short)(a+b);

    }

除此之外,您需要在传递它们时显式转换

addShort((short) 3,(short)3);