为什么我的输出是内存空间位置而不是int? [重复]

问题描述 投票:-1回答:2

这个问题在这里已有答案:

我不知道什么是正确的打印输入,以便我的输出可以是x,y和int的int值而不是内存空间。

public class IntObject{
    public int num;

    public IntObject() {
        num=0;
    }
    public IntObject(int n){
        num=n;
    }
    public void increment() {
        num++;
    }

}
public class IntObjectTest{

    public static IntObject someMethod(IntObject obj) {
        IntObject ans =obj;
        ans.increment();
        return ans;
    }
    public static void main(String[]args) {
        IntObject x = new IntObject(2);
        IntObject y = new IntObject(7);
        IntObject a =y;
        x=someMethod(y);
        a=someMethod(x);


    System.out.print(x);
    System.out.print(y);
    System.out.print(a);

    }

}

我可以做些什么来改变,以便我可以获得int值?

java printing
2个回答
1
投票

如果要按照要求中的指定打印对象内容,则应覆盖toString类中的IntObject方法。

您可以如下所示实现它,也可以使用IDE(Eclipse或IntelliJ)自动生成它:

@Override
public String toString() {
    return "num = "+ num;
}

Eclipseright clcik -> source -> generate toString()


0
投票

您可以在IntObject类中覆盖Object.toString()方法。

@Override
public String toString() {
    return String.valueOf(num);
}
© www.soinside.com 2019 - 2024. All rights reserved.