-4

I want to access to data of Page class inside Book class.( Such as b.pages.getPageNum() )
I did like b.pages = p; But it doesn't work. I couldn't access to Page class method. How can I access?
Thank you.

public class Book<Page> {
  private String name;

  ArrayList<Page> pages = new ArrayList<Page>();

  public Book(String name) {
    this.name = name;
  }

  public String getBook() {
    return name;
  }
}


public class Main {
  public static void main(String[] args) {

    ArrayList<Page> p = new ArrayList<>();
    Page p1 = new Page(22);
    Page p2 = new Page(33);
    Page p3 = new Page(44);
    Page p4 = new Page(55);
    p.add(p1);
    p.add(p2);
    p.add(p3);
    p.add(p4);

    Book b = new Book("harrypotter");
    b.pages = p;
  }
}


public class Page {
  private int pageNum;

  public Page(int pageNum) {
    this.pageNumber = pageNum;
  }

  public int getPageNum() {
    return pageNum;
  }
Mick Mnemonic
  • 7,808
  • 2
  • 26
  • 30
ayn
  • 1
  • 2

2 Answers2

0

Create public getter an setter

public class Book {
  private String name;

  ArrayList<Page> pages = new ArrayList<Page>();

  public Book(String name) {
    this.name = name;
  }

  public String getBook() {
    return name;
  }

  public List<Page> getPages() {
    return this.pages;
  }

  public void setPages(List<Page> pages) {
    this.pages = pages;
  }
}

Then set

b.setPages(p);

or access a page

b.getPages().get(0).getPageNum();
cen
  • 2,873
  • 3
  • 31
  • 56
  • Thank you for your comment. I get to need to create public getter and setter. But I couldn't access like `b.getPages().get(0).getPageNum();` – ayn Jul 19 '18 at 23:23
  • What error do you get? Be more specific. – cen Jul 19 '18 at 23:25
  • I got this error. Error:(19, 47) java: cannot find symbol symbol: method getPageNum() location: class java.lang.Object – ayn Jul 19 '18 at 23:33
  • Remove from Book class. It's not needed in this sample. – cen Jul 19 '18 at 23:44
  • Thank you very much for your answer. it works. – ayn Jul 19 '18 at 23:50
0
public class Book<Page> implements Iterable<Page> {

  private String name;

  ArrayList<Page> pages = new ArrayList<>();

  public Book(String name) {
    this.name = name;
  }

  public String getBook() {
    return name;
  }

  public ArrayList<Page> getPages() {
    return this.pages;
  }

  public void setPages(ArrayList<Page> pages) {
    this.pages = pages;
  }

  @Override
  public Iterator<Page> iterator() {
    BookIterator bookIterator = new BookIterator<Page>();
    bookIterator.pages = this.pages;
    return bookIterator;
  }
}


public class Main {
  public static void main(String[] args) {

    ArrayList<Page> p = new ArrayList<>();
    Page p1 = new Page(22, true);
    Page p2 = new Page(33, false);
    Page p3 = new Page(44, true);
    Page p4 = new Page(55, false);
    p.add(p1);
    p.add(p2);
    p.add(p3);
    p.add(p4);

    Book b = new Book("harrypotter", BookCategory.NOVEL);
    b.setPages(p);
    b.getPages().get(0).getPageNum();

  }
}


private int pageNum;

  public Page(int pageNum) {
    this.pageNumber = pageNum;
  }

  public int getPageNumber() {
    return pageNum;
  }
}
ayn
  • 1
  • 2