Проблема включения геттера в статический метод - PullRequest
0 голосов
/ 01 мая 2019

Моей первой целью было написать класс, представляющий книгу, и написать метод getFinishedPercent.Я считаю, что это все правильно.

Моя вторая цель - написать класс со статическим методом с именем CompareBooks, который получает два объекта книги в качестве параметров и печатает название книги, которая была прочитана чаще всего (на проценты).И если оба процента одинаковы, он напечатает.«Ничего себе, галстук!».

Я написал класс Book, в котором есть мои поля, геттеры и мутаторы, но я не уверен, как включить это в мой класс 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);   

 }
 }

Ответы [ 2 ]

0 голосов
/ 01 мая 2019

Попробуйте это:

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());

  }
}
0 голосов
/ 01 мая 2019
public static void compare(Book book1, Book book2){
    if(book1.getFinishedPercent() == book2.getFinishedPercent()){
        System.out.println("Wow, a tie!");
    }else{
      //other logic
    }
}

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);   
     compare(book1, book2);
 }

Вы можете сделать это. Если ваш метод является статическим (или нет), в этом случае не имеет значения.

...