diff options
| author | pants <niklasjo2004@gmail.com> | 2026-09-21 14:16:34 -0700 |
|---|---|---|
| committer | pants <niklasjo2004@gmail.com> | 2026-09-21 14:16:34 -0700 |
| commit | 81ba9eb66f8284d8760012973f84cdbe617ceb94 (patch) | |
| tree | 466432644e9e3fd66ee183ec53a1f10abb1b7faa /debugging/Book.java | |
Diffstat (limited to 'debugging/Book.java')
| -rw-r--r-- | debugging/Book.java | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/debugging/Book.java b/debugging/Book.java new file mode 100644 index 0000000..05ef36d --- /dev/null +++ b/debugging/Book.java @@ -0,0 +1,71 @@ +import java.util.*; + +public class Book implements Media { + + private String title; + private String author; + private List<String> authors; + private List<Integer> ratings; + + public Book(String title, String author) { + this.title = title; + this.author = author; + } + + public Book(String title, List<String> authors) { + this.title = title; + this.authors = authors; + } + + public String getTitle() { + return this.title; + } + + public List<String> getArtists() { + List<String> artists = new ArrayList<>(); + if (this.author != null) { + artists.add(this.author); + } + + if (this.authors != null) { + for (String author : authors) { + artists.add(author); + } + } + return artists; + } + + public void addRating(int score) { + if (this.ratings == null) { + ratings = new ArrayList<>(); + } + this.ratings.add(score); + } + + public int getNumRatings() { + + if (this.ratings == null) { + return 0; + } + + return this.ratings.size(); + } + + public double getAverageRating() { + if (this.ratings == null) { + return 0; + } + + int sum = 0; + for (int rating : ratings) { + sum += rating; + } + + return (double)sum / this.ratings.size(); + } + + public String toString() { + return this.title + " by " + this.getArtists() + ": " + this.getAverageRating() + + (this.ratings.size()) + " ratings"; + } +} |
