为什么我的输出是存储空间位置而不是int?

时间:2019-04-20 14:14:34

标签: java printing

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

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值?

2 个答案:

答案 0 :(得分:1)

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

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

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

Eclipse中执行right clcik -> source -> generate toString()

答案 1 :(得分:0)

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

@Override
public String toString() {
    return String.valueOf(num);
}