【问题标题】:Create an object in Java, pass in values when there is int parameters and an array in the constructor of the class from which the object was created在Java中创建一个对象,当创建对象的类的构造函数中有int参数和数组时传入值
【发布时间】:2016-04-30 10:27:46
【问题描述】:

我是 Java 新手,相对于编程而言。我一直在研究这个问题一个星期,但似乎无法得到它。我正在尝试从一个包含 int 类型参数和 1 个数组参数的类中创建一个测试类中的对象,该类中的构造函数、getter 和 setter 方法是从中创建对象的。我认为问题在于当我试图将参数传递给对象的参数时,但我不确定。

另外,这是我第一次使用这个网站,如果我想以不同的方式设置这个文本框,请告诉我。为了便于阅读,我阅读了一些关于代码按钮的内容,我尝试过但不确定它是否有效?

// Constructor
public House(int numberOfFloors, int numberOfWindows, int bathrooms, int[] numberOfRooms) {
    super(numberOfFloors, numberOfWindows); 
    numberOfBathrooms = bathrooms;
    rooms = numberOfRooms;
}

// Accessor/Getter
public int[] getRooms() {
return rooms;
}

// Mutator/Setter
public void setRooms(int[] rooms){
    this.rooms = rooms;
}

// toString
public String toString() {
    String result;
    result = "This House has " + numberOfBathrooms + " bathrooms, and "
    + rooms + " rooms. " + super.toString();
    return result;
}

// Object
House myHouse = new House(2, 9, 3, new int[]{28, 45, 65, 23, 45});
System.out.println(myHouse);   

// Output
// This House has 3 bathrooms, and [I@2a139a55 rooms.

瑞恩

【问题讨论】:

  • 你需要提供你得到的错误和你想要的行为。
  • 代码按钮不会重新格式化您的代码。它大致相当于用<pre>...</pre> 包围它。您的代码需要在粘贴之前正确缩进......如果您希望它看起来可读。
  • 另外,请注意,这不是有效的 Java 代码,如所写。没有class 声明等。
  • 我认为您正在寻找的答案部分是herehere 作为一个简单的解决方案
  • “这所房子有 3 间浴室和 [I@2a139a55 间客房。”这是你的问题吗?如果是这样,请查看@MadProgrammer 的评论。至于整体问题质量:您没有发布整个代码,也没有足够清楚地说明您的预期和观察到的行为(这在寻求调试帮助时至关重要)。您可能想看看How do I ask a good question? - pageOn-Topic - page

标签: java arrays object constructor arguments


【解决方案1】:

我不确定为什么房间在这里是一个数组,但我们假设它包含房间号/ID。然后,您希望使用Arrays.toString() 方法来获取正确的数组字符串,因为对象的默认 toString() 方法在这里没有多大用处,请参阅object toString()

// toString
public String toString() {
    String result;
    result = "This House has " + numberOfBathrooms + " bathrooms, and "

+ Arrays.toString(rooms) + " rooms." + super.toString(); 返回结果; }

【讨论】:

    【解决方案2】:

    我假设您的问题是“[I@2a139a55”的输出,而不是类似于{10, 20, 30}

    您打算将rooms 变量的内容打印到控制台。

    但该变量是一个 int 数组。

    Java 不提供/实现数组类型的 toString,因此默认情况下,对象的地址/引用 (=pointer) 会打印到控制台。

    如果要打印数组的值,可以使用“for 循环”来遍历数组的值。

    【讨论】:

    • Arrays.toString(int[]),假设你不关心格式
    猜你喜欢
    • 1970-01-01
    • 2017-08-21
    • 2019-12-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-24
    • 1970-01-01
    • 2014-06-03
    相关资源
    最近更新 更多