我的第一个目标也是写一个代表一本书的类,并写一个getFinishedPercent方法。我相信这都是正确的。
我的第二个目标是用一个名为compareBooks的静态方法编写一个类,该方法接收两个书籍对象作为参数,并打印出已阅读最多的书籍标题(按百分比)。如果两个百分比相同,则将打印出来。 “哇,打领带!”。
我编写了Book类,其中包含我的字段,getter和mutators,但是我不确定如何将其合并到我的compareBooks类中。
public class Book {
private String title;
private String author;
private int pages;
private int lastPageRead;
public Book(String title, String author, int pages, int
lastPageRead) {
this.title = title;
this.author = author;
this.pages = pages;
this.lastPageRead = lastPageRead;
}
public String getTitle() {
return title;
}
public String getAuthor() {
return author;
}
public int getPages() {
return pages;
}
public int lastPageRead() {
return lastPageRead;
}
public double getFinishedPercent() {
double percent = 0;
percent = lastPageRead / pages;
return percent;
}
}
public class compareBooks {
public static void main(String [] args) {
Book book1 = new Book("Building Java Programs", "Stuart
Reges & Marty Stepp", 1194, 586);
Book book2 = new Book("Java is hard","Brian May", 1334,
23);
}
}
答案 0 :(得分:0)
{{1}}
您可以执行此操作。在这种情况下,如果您的方法是静态的(或不是静态的)则无所谓。
答案 1 :(得分:0)
尝试一下:
class compareBooks {
public static class Book {
private String title;
private String author;
private double pages;
private double lastPageRead;
Book(String title, String author, int pages, int
lastPageRead) {
this.title = title;
this.author = author;
this.pages = pages;
this.lastPageRead = lastPageRead;
}
public String getTitle() {
return title;
}
public String getAuthor() {
return author;
}
public double getPages() {
return pages;
}
public double lastPageRead() {
return lastPageRead;
}
public double getFinishedPercent() {
return lastPageRead / pages;
}
}
public static void main(String [] args) {
Book book1 = new Book("Building Java Programs", "Stuart Reges & Marty Stepp",
1194, 586);
Book book2 = new Book("Java is hard","Brian May", 1334,
23);
System.out.println(book1.getFinishedPercent());
}
}
答案 2 :(得分:0)
对于仍然遇到此问题的任何人,Victor的解决方案看起来都不错,我认为OP非常接近正确的解决方案。 OP每次获得相同结果的原因是因为getFinishedPercent()将较小的整数除以较大的整数,并且由于我们仅处理整数,因此每次将结果均截断为0,然后将其保存为事实加倍。无需强制转换甚至不声明其他变量的简单解决方法是替换:
read -r var1 var2 < <(external_tool | awk -v ORS=' ' '$1~/^(id1|id2)$/{print $2}')
# check variables
declare -p var1 var2
...与...
public double getFinishedPercent() {
double percent = 0;
percent = lastPageRead / pages;
return percent;
}
对于那些研究过此作业问题并且是整数除法主题的新手的人,这里是有关Java基本数学的快速复习页面:https://mathbits.com/MathBits/Java/DataBasics/Mathoperators.htm