0

私は、構成をモデル化するための配列を使用してクラスを作成するプロジェクトに取り組んでいる学生です。これまでのところすべてが正しいと想定していますが、ドライバー クラスの print ステートメントに問題があるようです。私が2つを一緒にチェーンする方法についてかどうかはわかりません。どんな情報でもありがたいです。

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

1 に答える 1

1

pタイプPage[]、つまり「ページの配列」です。また、配列にはメソッドがありませんprint()。したがって、ステートメントp.print()はコンパイルされません(質問でそれを言って、正確なエラーメッセージに参加する必要がありました)。

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

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

単一文字の変数は避け、配列とコレクションには複数形を使用してください。Page[] pages = new Page[2];

于 2012-05-11T21:27:31.447 に答える