我只想使用 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
提交
取消