如何在Java中打印这个对象?



我是java的新手,昨天我的教授给我发了一个样本测试。很不幸,我被一个任务困住了。

任务:

编写一个名为MyArray的类,其中包含所有必需的方法。在类实例化之后,我们希望在Main.java中像这样使用这个类:

// comments : expected outputs
System.out.println(myarray1); // []
System.out.println(myarray1.size()); // 0
System.out.println(myarray1.isEmpty()); // true
myarray1.append(51);
myarray1.append(75);
myarray1.append(24);
System.out.println(myarray1); // [51, 75, 24]
System.out.println(myarray1.size()); // 3
int last = myarray1.getLast();
System.out.println(last); // 24
int first = myarray1.getFirst();
System.out.println(first); // 51
myarray1.appendAll(List.of(15, 95, 124));
System.out.println(myarray1); // [51, 75, 24, 15, 95, 124]
System.out.println(MyArray.InstCount); // 1 <instantiation counter>

我已经成功地实现了所有必要的方法,但是我看不懂这一行:

System.out.println(myarray1); // []

如何直接打印这个对象(数组列表)?

我不能那样做。我的解决方案是一个名为print()的新方法,它打印myarray1对象:

在Main.java:

System.out.println(myarray1.print()); // []

在MyArray.java:

import java.util.List;
import java.util.ArrayList;
class MyArray
{
public static int Count = 0;
private List<Integer> numbers = new ArrayList<Integer>();
MyArray()
{
Count++;
}
public List<Integer> print()
{
return numbers;
}
.
. // other methods...
.
}

print()是一个有点奇怪的名字,如果该方法实际上不打印任何东西,而是构造一个字符串。

println(Object obj)方法存在于PrintStream(System.out是一个PrintStream)。它通过调用对象的toString()方法(所有对象都有——你可以覆盖它)来打印对象:

public class MyArr {
@Override public String toString() {
return whatever your print() method was returning.
}
}

看起来您需要重写toString方法。像这样

class MyArray {
// other fields
@Override
public String toString() {
return numbers.toString();
}
}

相关内容

  • 没有找到相关文章

最新更新