0 java getter setter program-entry-point getter-setter
最近,我在计算机科学课程中完成了一项任务,创建了一个由所述类构建的两个对象的类.
教授通过电子邮件批评的内容如下:"构造函数,getter和setter中的sysouts应该是主要方法."
他不会说英语,所以没有多大帮助.有人知道他在谈论我的代码时到底在说什么吗?这是我提交的代码:
public class Book {
int currentPage;
int nextPage;
int lastPage;
public Book(int pageNumber) {
currentPage = pageNumber;
System.out.println("You've opened the book to page " + currentPage + ".");
}
public void turnForward(int numTurned) {
nextPage = numTurned + currentPage;
System.out.println("You've turned forward to page " + nextPage + ".");
}
public void turnBack(int numTurned) {
lastPage = nextPage - numTurned;
if (lastPage <= 1) {
lastPage = 1;
System.out.println("You've turned back to the first page.");
}else {
System.out.println("You've turned back to page " + lastPage + ".");
}
}
public static void main(String[] args) {
Book bigJava = new Book(5);
bigJava.turnForward(2);
bigJava.turnBack(8);
Book earlyObjects = new Book(22);
earlyObjects.turnForward(12);
earlyObjects.turnBack(17);
}
}
Run Code Online (Sandbox Code Playgroud)
是否必须在主方法中放置getter/setter?如果我这样做,代码实际上不会运行.
他指的是你班级的可重用性.他希望你公开getter,这样你就可以将print语句放在main方法中了.
如果其他人想要使用您的课程,或者您希望将其重新用于其他项目,则不应将内容打印到控制台.并非所有Book可能使用的情况都应该将内容打印到控制台.
因此,最好将记录保存在main方法中,因此Book可以重用于其他任务.
干将允许您访问的值,同时也让你的领域private,确保他们可以修改的唯一方法就是把你暴露的行为:turnForward,turnBack,等.
翻页时,当前页面应该更改.它保持不变是没有意义的.
你的行为方法应该改变currentPage变量:
public void turnForward(int pages) {
currentPage += numOfPages;
}
public void turnBack(int numOfPages) {
currentPage -= numOfPages;
}
public int getCurrentPage() {
return currentPage;
}
Run Code Online (Sandbox Code Playgroud)
然后你的主要方法可以翻页,每次都记录:
public static void main(String[] args) {
Book book = new Book(25);
int startPage = book.getCurrentPage();
book.turnForward(5);
int endPage = book.getCurrentPage();
System.out.println("The book was turned " + endPage - startPage + " pages forward.");
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1520 次 |
| 最近记录: |