簡體   English   中英

如何在Java中打印這個object?

[英]How to print this object in Java?

我是 java 的新人,昨天我的教授給我發了一份樣本測試。 不幸的是我被困在一個任務中。

任務:

編寫一個名為MyArray的 class,其中包含所有必要的方法。 在 class 實例化之后,我們想在 Main.java 中使用這個 class,如下所示:

// 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); // []

如何直接打印這個 object (ArrayList)?

我不能那樣做。 我的解決方法是使用一種名為print()的新方法,它會打印 myarray1 object:

在 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()這個名字有點奇怪。

PrintStream中存在println(Object obj)方法(而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();
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM