Этот код был поставлен под сомнение в упражнении, которое я должен был решить. Хотя мой код показывает правильный результат (версия 1), я не уверен, насколько он хорош, как предоставленное решение (версия 2), или если оно вообще правильно. Задача состоит в том, чтобы написать класс, который представляет книгу и методы для перемотки вперед и назад с помощью саморекламы.В чем разница между двумя отмеченными методами? Являются ли их результаты одинаковыми?
public class Book {
private int page;
private Book nextPage;
public Book(int page) {
setPage(page);
setNextPage(null);
}
//Getter and Setter
public void setPage(int page){
this.page = page;
}
public int getPage() {
return this.page;
}
public void setNextPage(Book nextPage) {
this.nextPage = nextPage;
}
public Book getNextPage() {
return nextPage;
}
/*The following methods are getting two int values and should page backward, showing each page number. */
Версия одна:
public static void pageBackward1(int currentPage, int goalPage) {
Book page = new Book(currentPage);
System.out.print("Page " + page.getPage() + " ");
while(goalPage != page.getPage()) {
currentPage--;
page.nextPage = new Book(currentPage);
page = page.nextPage;
System.out.print("Page " + page.getPage() + " ");
}
}
Версия два:
public static void pageBackward2(int currentPage, int goalPage) {
Book previousPage = null;
for(int i = currentPage; i <= goalPage; i++) {
Book page = new Book(i);
page.setNextPage(previousPage);
previousPage = page;
}
Book page = previousPage;
while(page != null) {
System.out.print("Page " + page.getPage() + " ");
page = page.getNextPage();
}
System.out.println();
}
}
Следующая демо-класс прост и показывает выполнение методов:
public class BookDemo {
public static void main(String[] args) {
Book.pageBackward1(500, 455);
System.out.println();
Book.pageBackward2(500, 455);
}
}
Вы запустили его и проверьте? – Stultuske
Что такое смысловое значение (также в «предоставленном решении»!) Вызова Задать класс, представляющий страницу? – Matt
@Stultuske Я побежал и проверил программу. Результат выглядит так: страница 500 страница 499 страница 498 ... страница 455 –