Java 尝试在数组中的数组中循环

Java 尝试在数组中的数组中循环,java,arrays,Java,Arrays,我试图打印noteArray的每一部分(例如:19,然后将“D”作为单独的部分),但通过使用For循环,我得到了每一行的一条含糊不清的打印消息。“processNotes(noteArray)”方法是我希望输出的外观 任何帮助都将不胜感激 public class question2 { public static void main(String[] args) { Note[] noteArray = new Note[5]; noteArray[0] = new Note(

我试图打印noteArray的每一部分(例如:19,然后将“D”作为单独的部分),但通过使用For循环,我得到了每一行的一条含糊不清的打印消息。“processNotes(noteArray)”方法是我希望输出的外观

任何帮助都将不胜感激

public class question2 {
public static void main(String[] args) {
    Note[] noteArray = new Note[5];
    noteArray[0] = new Note(19, "D");
    noteArray[1] = new Note(10, "C");
    noteArray[2] = new Note(23, "F");
    noteArray[3] = new Note(20, "B");
    noteArray[4] = new Note(32, "C");
    processNotes(noteArray);
    for(Note i : noteArray){
        System.out.println(i);
        }
}
private static void playNote() {
    int numberDuration = Note.getduration();
    String letterPitch = Note.getpitch();
    System.out.println("The note "+ letterPitch +" is played for "+ 
numberDuration +" seconds.");
    return;
}
public static void processNotes(Note[] notes) {
    playNote();
}
}
class Note
{
private static String pitch;
private static int duration;
public Note(int duration, String pitch) {
    this.pitch = "C";
    this.duration = 10;
}
public static int getduration() {
    return duration;
}
public void setduration(int duration) {
    Note.duration = duration;
}
public static String getpitch() {
    return pitch;
}
public void setpitch(String pitch) {
    Note.pitch = pitch;
}
}
编辑:

我想: 音符C播放10秒

我得到的数组的输出:

Note@6d06d69c
Note@7852e922
Note@4e25154f
Note@70dea4e
Note@5c647e05

您可以只重写Note类的toString方法,因为sysout隐式调用toString。

您可以只重写Note类的toString方法,因为sysout隐式调用toString。

您有两种可能性

首先,重写toString()方法,以便在
System.out.println()
时,它可以根据需要打印笔记

其次,您可以在循环中,而不是打印便笺:

for(Note i : noteArray){
    System.out.println(i.getPitch());
    System.out.println(i.getDuration());
}

你有两种可能

首先,重写toString()方法,以便在
System.out.println()
时,它可以根据需要打印笔记

其次,您可以在循环中,而不是打印便笺:

for(Note i : noteArray){
    System.out.println(i.getPitch());
    System.out.println(i.getDuration());
}

将以下内容添加到Notes类:

public String toString() {
    return "Duration = " + duration + ", pitch = " + pitch;
}


发件人:

返回对象的字符串表示形式。总的来说 toString方法返回一个字符串,该字符串“以文本形式表示”此 对象结果应该是简洁但信息丰富的表示 这对一个人来说很容易阅读。建议所有 子类重写此方法。

类对象的toString方法返回一个字符串,该字符串由 对象作为实例的类的名称,at符号 字符“@”和哈希的无符号十六进制表示形式 对象的代码。换句话说,此方法返回一个等于 值:

getClass().getName() + '@' + Integer.toHexString(hashCode())
您可以重写此方法以获得更有意义的输出


建议进一步阅读:

将以下内容添加到笔记类中:

public String toString() {
    return "Duration = " + duration + ", pitch = " + pitch;
}


发件人:

返回对象的字符串表示形式。总的来说 toString方法返回一个字符串,该字符串“以文本形式表示”此 对象结果应该是简洁但信息丰富的表示 这对一个人来说很容易阅读。建议所有 子类重写此方法。

类对象的toString方法返回一个字符串,该字符串由 对象作为实例的类的名称,at符号 字符“@”和哈希的无符号十六进制表示形式 对象的代码。换句话说,此方法返回一个等于 值:

getClass().getName() + '@' + Integer.toHexString(hashCode())
您可以重写此方法以获得更有意义的输出


建议进一步阅读:

override to String in Note Classis查看您在问题中得到了什么和想要什么会很有用。使用问题下方的“编辑”链接将其添加。在Notes Classic中覆盖到字符串这将有助于查看您在问题中得到了什么以及您想要什么。使用问题下方的编辑链接添加它。这正是我想要的!但是,我如何让它通过Note类的noteArray循环来获取持续时间和音高并将其设置为多个不同的值?您可以使用
setduration
setpitch
。您能详细说明一下吗?我曾尝试在“setduration”部分中加入一个循环,但我一直遇到问题。@Tipzil您需要从许多地方删除
static
,并修复Note类的构造函数。看,这正是我想要的!但是,我如何让它通过Note类的noteArray循环来获取持续时间和音高并将其设置为多个不同的值?您可以使用
setduration
setpitch
。您能详细说明一下吗?我曾尝试在“setduration”部分中加入一个循环,但我一直遇到问题。@Tipzil您需要从许多地方删除
static
,并修复Note类的构造函数。我看绝对没问题,谢谢你花时间解释!绝对没问题,谢谢你花时间解释!