У меня есть класс Reader - это обычный читатель в книжном, но также в моей "системе" должен быть премиум читатель. Как мне этого читателя реализовать правильно? Как читателя превращать в премиум и наоборот? И у каждого есть свои доп методы, которых нет у другого. Надеюсь понятно написал.
Вот код:
public class Reader {
private String name;
private String number;
private int countBooks;
private int readerTicket;
private List<Book> book = new LinkedList<>();
public Reader(String name, String number, int readerTicket) {
this.name = name;
this.number = number;
this.readerTicket = readerTicket;
}
public Reader(Reader a) {
name = a.name;
book = a.book;
countBooks = a.countBooks;
}
public void takeBook(Book nameBook) {
for (Book b : book) {
if (nameBook.equals(b)) {
System.out.println("Такая книга уже есть");
return;
}
}
System.out.println("Читатель: " + name + " взял книгу: " + nameBook.getName());
book.add(nameBook);
countBooks++;
}
public void takeBook(Book[] nameBook) {
StringBuilder builder = new StringBuilder();
for (int i = 0; i < nameBook.length; i++) {
countBooks++;
book.add(nameBook[i]);
if (i == nameBook.length - 1) {
builder.append(nameBook[i].getName());
break;
}
builder.append(nameBook[i].getName()).append(", ");
}
System.out.println("Читатель: " + name + " взял книги: " + builder);
}
public void cBooks() {
System.out.println("Пользователь: " + name + " Взял вот столько книг: " + countBooks);
}
public String getName() {
return name;
}
public List<Book> getBook() {
return book;
}
protected int getCountBooks() {
return countBooks;
}
}
public class Reader {
private String name;
private String number;
private int countBooks;
private int readerTicket;
private List<Book> book = new LinkedList<>();
public Reader(String name, String number, int readerTicket) {
this.name = name;
this.number = number;
this.readerTicket = readerTicket;
}
public Reader(Reader a) {
name = a.name;
book = a.book;
countBooks = a.countBooks;
}
public void takeBook(Book nameBook) {
for (Book b : book) {
if (nameBook.equals(b)) {
System.out.println("Такая книга уже есть");
return;
}
}
System.out.println("Читатель: " + name + " взял книгу: " + nameBook.getName());
book.add(nameBook);
countBooks++;
}
public void takeBook(Book[] nameBook) {
StringBuilder builder = new StringBuilder();
for (int i = 0; i < nameBook.length; i++) {
countBooks++;
book.add(nameBook[i]);
if (i == nameBook.length - 1) {
builder.append(nameBook[i].getName());
break;
}
builder.append(nameBook[i].getName()).append(", ");
}
System.out.println("Читатель: " + name + " взял книги: " + builder);
}
public void cBooks() {
System.out.println("Пользователь: " + name + " Взял вот столько книг: " + countBooks);
}
public String getName() {
return name;
}
public List<Book> getBook() {
return book;
}
protected int getCountBooks() {
return countBooks;
}
}
public class Reader {
private String name;
private String number;
private int countBooks;
private int readerTicket;
private List<Book> book = new LinkedList<>();
public Reader(String name, String number, int readerTicket) {
this.name = name;
this.number = number;
this.readerTicket = readerTicket;
}
public Reader(Reader a) {
name = a.name;
book = a.book;
countBooks = a.countBooks;
}
public void takeBook(Book nameBook) {
for (Book b : book) {
if (nameBook.equals(b)) {
System.out.println("Такая книга уже есть");
return;
}
}
System.out.println("Читатель: " + name + " взял книгу: " + nameBook.getName());
book.add(nameBook);
countBooks++;
}
public void takeBook(Book[] nameBook) {
StringBuilder builder = new StringBuilder();
for (int i = 0; i < nameBook.length; i++) {
countBooks++;
book.add(nameBook[i]);
if (i == nameBook.length - 1) {
builder.append(nameBook[i].getName());
break;
}
builder.append(nameBook[i].getName()).append(", ");
}
System.out.println("Читатель: " + name + " взял книги: " + builder);
}
public void cBooks() {
System.out.println("Пользователь: " + name + " Взял вот столько книг: " + countBooks);
}
public String getName() {
return name;
}
public List<Book> getBook() {
return book;
}
protected int getCountBooks() {
return countBooks;
}
}