java - 使用数组在组合模型中链接打印的方法

标签 java bluej

我是一名学生,正在从事一个项目,该项目使用数组创建类来建模组合。我假设到目前为止一切都正确,但似乎我在驱动程序类中的打印语句遇到问题。我不确定这是否与我将两者链接在一起的方法有关。任何信息将不胜感激。

public class MyWord
{
  private String word;     
  public MyWord(){
    word = "Null"; 
  }
  public MyWord(String s){
    word = s; 
  }
  public String getWord(){
    return word; 
  }
  public void setWord(String w){
    word = w; 
  }
  public void print(){
    System.out.println(word); 
  }
}

public class Page
{
private MyWord[] words = new MyWord[5]; 
private int pageNumber;     
public Page(){
    MyWord words[] = {} ; 
    pageNumber = 0; 
}    
public Page(MyWord[] a, int b){
    words = a; 
    pageNumber = b; 
}    
public MyWord[] getWord(){
    return words;
}   
public int getPageNumber(){
    return pageNumber;
}    
public void setMyWord(MyWord[] a){
    words = a; 
}    
public void setPageNumber(int b){
    pageNumber = b; 
}    
public void print(){
    System.out.print(" Page Number: " + pageNumber + " " + words);
}
}

public class Book
{
private Page[] p = new Page[5]; 
private String title;     
public Book(){
    Page[] p = {}; 
    title = " ";
}
    public Book(Page[] pa, String ti){
    p = pa; 
    title = ti; 
}
    public Page[] getPage(){
    return p; 
}
    public String getTitle(){
      return title; 
}    
public void setPage(Page[] x){
    p = x; 
}
public void setTitle(String y){
    title = y; 
}    
public void print(){
    System.out.print("Book info:" + p + " " + title);
}
}

public class Series
{
private Book bookOne, bookTwo, bookThree; 
private double price; 

public Series(){
    bookOne = null; 
    bookTwo = null; 
    bookThree = null; 
    price = 0; 
}

public Series(Book one, Book two, Book three, double p){
    bookOne = one; 
    bookTwo = two; 
    bookThree = three; 
    price = p; 
}    
public Book getBookTwo(){
    return bookTwo;
}    
public Book getBookOne(){
    return bookOne;
}    
public Book getBookThree(){
    return bookThree;
}    
public double getPrice(){
    return price;
}
public void setBookOne(Book bookOne){
    this.bookOne = bookOne;
}   
public void setBookTwo(Book bookTwo){
    this.bookTwo = bookTwo;
}    
public void setBookThree(Book bookThree){
    this.bookThree = bookThree;
}    
public void setPrice(double price){
    this.price = price; 
}
public void print(){
    System.out.println("Series info");
    System.out.println("Book one:" + bookOne + " Book Two: " +bookTwo
    + " Book Three: " + bookThree + "Price: " + price);
  }
 }

public class Driver
{
public static void main(String args[]){    
    MyWord[] w1 = new MyWord[2];
    w1[0] = new MyWord("Hello"); 
    w1[1] = new MyWord("Hola"); 

    Page[] p = new Page[2];
    p[0] = new Page(w1, 20); 
    p.print(); 
   }
}

最佳答案

p 的类型为 Page[],即“Page 数组”。并且数组没有 print() 方法。因此,语句 p.print() 无法编译(您应该在问题中这么说,并加入确切的错误消息)。

要打印数组的所有页面,需要循环数组:

for (Page page : p) {
    page.print();
}

请避免使用单字母变量,并对数组和集合使用复数形式:Page[] pages = new Page[2];

关于java - 使用数组在组合模型中链接打印的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10558813/

相关文章:

java - 构造函数输出未到来

java - java中如何忽略空格和空行

java - 泛型集合中的 ClassCastException 与 instanceOf

java - Tomcat 不能在本地主机上工作

java - Cassandra Client API 与 App Engine Datastore API 最相似?

java - 替换一系列 if/else-if/else 语句,这些语句会递增整数数组中的七个变量

Java变量可能没有被初始化?

java - 如何在不输出括号和逗号的情况下输出Arraylist中的数字列表?

java - "Bpmn2 Diagram Editor"和 "BPMN2 Process Editor"之间的区别

java - 替换 jar 并重定向 import 语句