如何正确显示对象中对象的数据?

时间:2019-08-31 18:33:39

标签: java linked-list

创建一个具有Notes类的链接列表,该类基本上是一个包含NotePages的对象,NotePages是另一个类,该类包含“标题”和描述的字符串。 Notes类扩展了另一个类,它是前面提到的LinkedList类。问题是,当我尝试打印出带有便笺页面的便笺时,显示如下:

Note one 
     []

分配在对象中显示的内容如下:

NotePages page = new NotePages("title one", "Description");
Notes note = new Notes("Note one", page);

note.printNote();

我尝试创建其他方法,例如String方法,以尝试使页面正确返回无济于事。

这是我的Notes对象代码。

public class Notes extends LinkedList{

private String title;
private LinkedList<NotePages> pages;

public String getTitle() {
    return title;
}

public void setTitle(String title) {
    this.title = title;
}

public LinkedList<NotePages> getPages() {
    return pages;
}

public void setPages(LinkedList<NotePages> pages) {
    this.pages= pages;
}

public Notes(String title, LinkedList<NotePages> pages) {
    this.title = title;
    this.pages= pages;
}

void printNote(){
    System.out.println(getTitle()+"\n"+getPages());
}
}

我需要显示器输出更接近此内容的东西:

Note one 
    title one
    description

这是NotePages类:

import java.awt.*;

public class NotePages {

private String title;
private String description;
private Color label;

public String getTitle() {
    return title;
}

public void setTitle(String title) {
    this.title = title;
}

public String getDescription() {
    return description;
}

public void setDescription(String description) {
    this.description = description;
}

public Color getLabel() {
    return label;
}

public void setLabel(Color label) {
    this.label = label;
}

NotePages(String title, String description, Color label){
    this.title = title;
    this.description = description;
    this.label = label;
}

NotePages(String title,String description){
    this.title = title;
    this.description = description;
}

void printPage(){
    System.out.println(getTitle() + "\n     "+ getDescription());
}

}

1 个答案:

答案 0 :(得分:2)

需要在printNote函数中进行更改。

初始化Notes的构造函数时,会使用NotePage LinkedList初始化 pages 变量。 页面不直接包含值。它包含NotePage的对象。因此,您需要使用循环遍历所有linkedList对象,然后为每个对象打印标题和描述。

void printNote(){
     System.out.println(getTitle());

    //no need to use getPages function, pages already has your list

    for(int i=0; i<pages.size();i++)
          System.out.println(pages.get(i).getTitle()+"\n"+pages.get(i).getDescription());       

}

get函数将帮助您在每个ith索引处获取对象,然后只需使用NotePage类的get函数来打印标题和描述。

还可以通过in main函数将一个LinkedList对象添加到Note的构造函数中,而不是NotePage中。

LinkedList<NotePages> notelist = new LinkedList<>();
notelist.add(page);
//adding LinkedList object to Notes constructor
Notes note = new Notes("Note one", notelist);