我只想使用 getter 和 setter 方法掃描和顯示數組。它在 setter 中工作正常,但是當我嘗試調用 getter 方法而不是顯示數組元素時,它顯示數組類名。如何使用 getter 方法顯示數組元素? public class ArrayElements { private int[] arrayElements; public int[] getArrayElements() { return this.arrayElements; } public void setArrayElements(int[] arrayElements) { this.arrayElements = arrayElements; }}public class BubbleSort { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); ArrayElements arrayElements = new ArrayElements(); int[] element = new int[5]; System.out.println("Enter Elements :"); for (int i = 0; i < element.length; i++) { element[i] = scanner.nextInt(); } arrayElements.setArrayElements(element); System.out.println(arrayElements.getArrayElements()); }}Enter Elements :10 20 0 45 56[I@299a06ac
3 回答

素胚勾勒不出你
TA貢獻1827條經驗 獲得超9個贊
要顯示數組的元素,您應該使用
System.out.println(Arrays.toString(arrayElements.getArrayElements()));
您的調用僅顯示 int 數組的內存地址。

斯蒂芬大帝
TA貢獻1827條經驗 獲得超8個贊
嘗試這樣的事情:
System.out.println(Arrays.toString(arrayElements.getArrayElements()));

冉冉說
TA貢獻1877條經驗 獲得超1個贊
除了其他答案外,還解釋了為什么您對第一眼的結果感到陌生。
每次你在那里調用System.out.println(object)和傳遞一些東西時object,toString()都會在內部調用一個方法println()。所以調用等于System.out.println(object.toString())。這樣做是為了獲取您要打印的對象的有效字符串表示形式。
數組是引用類型,它的類型是Object. 您不會重寫toString()數組的方法,因此它的默認實現歸結為Object類。Object類方法的實現toString():
public String toString()
{
? ? ? return getClass().getName()+"@"+Integer.toHexString(hashCode());
}
正如您在這里看到的,此方法以十六進制格式打印出類名、符號“@”和哈希碼。
添加回答
舉報
0/150
提交
取消