Week 22
Source Code
import java.util.*;
public class Week22 {
public static void main(String[] args) {
String myName = ""; // add your name
System.out.println("Week 22" + " - " + myName);
// Menu
System.out.println("Menu");
System.out.println("E1 - Example 1");
System.out.println("Q - Quit");
// setup Scanner
Scanner in = new Scanner(System.in);
System.out.print("Choice: ");
String choice = in.nextLine();
// switch choices
switch (choice) {
case "E1":
System.out.println("Example 1");
example1();
break;
case "E2":
System.out.println("Example 2");
example2();
break;
case "E3":
System.out.println("Example 3");
example3();
case "Q":
System.out.println("Quitting..!");
break;
}
}
// example1 method
public static void example1() {
// This creates a GameCharacter object.
// This creates a BossCharacter object,
// but stores it in a GameCharacter reference.
// This creates a BossCharacter object,
// stored in a BossCharacter reference.
}
// example2 method
public static void example2() {
String s1 = "hello";
String s2 = "hello";
// .equals()
// equality
// new String
}
// example3 method
public static void example3() {
// "Fortnite" (Battle Royale) - Max Players: 100
// "Minecraft" (Sandbox) - Max Players: 10
}
}
SeeNSayToy.java
// Parent class
class FarmCreature {.
public void makeNoise() {
System.out.println("This creature makes a sound.");
}
}
// Subclasses
class Cow extends FarmCreature {
public void makeNoise() {
System.out.println("The cow says: Moo!");
}
}
class Duck extends FarmCreature {
public void makeNoise() {
System.out.println("The duck says: Quack!");
}
}
class Sheep extends FarmCreature {
public void makeNoise() {
System.out.println("The sheep says: Baa!");
}
}
class Pig extends FarmCreature {
public void makeNoise() {
System.out.println("The pig says: Oink!");
}
}
// SeeNSay Toy class
public class SeeNSayToy {
public static void main(String[] args) {
System.out.println("SeeNSayToy Example");
// Create an array of FarmCreature references
// Simulate the spinning arrow landing on a random creature
// Polymorphism: behavior depends on actual object
}
}
ShoppingCartDemo2.java
import java.util.*;
/**
* The ShoppingCart class has an ArrayList of Items.
* You will write a new class DiscountedItem that extends Item.
* This code is adapted
* https://practiceit.cs.washington.edu/problem/view/bjp4/chapter9/e10-DiscountBill
*/
public class ShoppingCartDemo2 {
public static void main(String[] args) {
ShoppingCart cart = new ShoppingCart();
cart.add(new Item("bread", 3.25));
cart.add(new Item("milk", 2.50));
// cart.add(new DiscountedItem("ice cream", 4.50, 1.50));
// cart.add(new DiscountedItem("apples", 1.35, 0.25));
// add another DiscountedItem
cart.printOrder();
// call countDiscountedItems
}
}
class DiscountedItem extends Item {
// Copy your DiscountedItem code the last activity here!
}
class ShoppingCart {
private ArrayList<Item> order;
private double total;
private double internalDiscount;
public ShoppingCart() {
order = new ArrayList<Item>();
total = 0.0;
internalDiscount = 0.0;
}
public void add(Item i) {
order.add(i);
total += i.getPrice();
if (i instanceof DiscountedItem)
internalDiscount += ((DiscountedItem) i).getDiscount();
}
/** printOrder() will call toString() to print */
public void printOrder() {
System.out.println(this);
}
public String toString() {
return discountToString();
}
public String discountToString() {
return orderToString() + "\nSub-total: " + valueToString(total) + "\nDiscount: "
+ valueToString(internalDiscount) + "\nTotal: " + valueToString(total - internalDiscount);
}
private String valueToString(double value) {
value = Math.rint(value * 100) / 100.0;
String result = "" + Math.abs(value);
if (result.indexOf(".") == result.length() - 2) {
result += "0";
}
result = "$" + result;
return result;
}
public String orderToString() {
String build = "\nOrder Items:\n";
for (int i = 0; i < order.size(); i++) {
build += " " + order.get(i);
if (i != order.size() - 1) {
build += "\n";
}
}
return build;
}
// Add a method called countDiscountedItems()
}
class Item {
private String name;
private double price;
public Item() {
this.name = "";
this.price = 0.0;
}
public Item(String name, double price) {
this.name = name;
this.price = price;
}
public double getPrice() {
return price;
}
public String valueToString(double value) {
String result = "" + Math.abs(value);
if (result.indexOf(".") == result.length() - 2) {
result += "0";
}
result = "$" + result;
return result;
}
public String toString() {
return name + " " + valueToString(price);
}
}
Game.java
// Superclass representing a generic video game
public class Game {
// Instance variables to store the game's title and genre
// Constructor to initialize the game's title and genre
// Overrides the default toString() method to return a more readable string
// Overrides the default equals() method to compare two Game objects logically
// If both references point to the same object, they're equal
// If obj is not an instance of Game, they can't be equal
// Downcast obj to Game to compare their content
// Check if both title and genre are equal
}
OnlineGame.java
// Subclass representing an online game that extends the base Game class
public class OnlineGame extends Game {
// Instance variable to store the maximum number of players for the online game
// Constructor
// Overrides the toString method to include maxPlayers in the description
// Overrides the equals method to compare OnlineGame objects logically
// First, check if the superclass part of the object is equal (title and genre)
// Ensure the object is actually an OnlineGame
// Downcast obj to OnlineGame so we can compare maxPlayers
// Return true if both objects have the same maxPlayers value
}
MovieCollection.java
import java.util.*;
public class MovieCollection {
// Superclass
public static class Movie {
private String title;
private String genre;
public Movie(String title, String genre) {
this.title = title;
this.genre = genre;
}
// TODO: Override toString() to return a string like: "Inception" (Sci-Fi)
@Override
public String toString() {
return ""; // placeholder
}
// TODO: Override equals to compare title and genre
@Override
public boolean equals(Object obj) {
return false; // placeholder
}
public String getTitle() {
return title;
}
}
// Subclass
public static class StreamingMovie extends Movie {
private String platform;
private String rating;
public StreamingMovie(String title, String genre, String platform, String rating) {
super(title, genre);
this.platform = platform;
this.rating = rating;
}
// TODO: Override toString() to add platform and rating
@Override
public String toString() {
return ""; // placeholder
}
// TODO: Override equals to include platform and rating
@Override
public boolean equals(Object obj) {
return false; // placeholder
}
public String getPlatform() {
return platform;
}
}
// Main method for testing
public static void main(String[] args) {
ArrayList<StreamingMovie> watchlist = new ArrayList<>();
// TODO: Add at least 4 StreamingMovie objects to the watchlist
// TODO: Print all movies in the list
// TODO: Search for a movie by title and print its details
// TODO: Count how many movies are on a specific platform (e.g., Netflix)
}
}
Last updated
Was this helpful?