2012-05-11 10 views
0

私は、プロジェクトを担当している学生で、モデル構成の配列を持つクラスを作成しています。私はこれまでのところすべてのことが正しいと仮定していますが、ドライバクラスのprintステートメントで問題が発生しているようです。私は、私が2つの方法を連鎖させる方法であるかどうかは分かりません。どんな情報もありがたいです。メソッドアレイを使用したCompostionモデルで印刷するためのチェーン化

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(); 
    } 
} 
+2

何問題ですか? –

答えて

1

pタイプPage[]、すなわち "ページの配列" です。配列にはprint()メソッドがありません。したがって、文p.print()はコンパイルされません(あなたはあなたの質問にそれを述べ、正確なエラーメッセージに参加していたはずです)。

配列のすべてのページを印刷するには、あなたは配列をループする必要があります。

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

一文字変数を回避し、そして配列やコレクションの複数形を使用してください:Page[] pages = new Page[2];

関連する問題