From b8404a56bd9005bfbbdfb08c3af98b2041f0b4d2 Mon Sep 17 00:00:00 2001 From: Courtney Frey Date: Tue, 8 Mar 2022 15:39:37 -0600 Subject: [PATCH] started code added --- src/org/launchcode/studio7/BaseDisc.java | 48 +++++++++++++++++++++ src/org/launchcode/studio7/CD.java | 16 +++++-- src/org/launchcode/studio7/DVD.java | 20 +++++++-- src/org/launchcode/studio7/Main.java | 14 +++++- src/org/launchcode/studio7/OpticalDisc.java | 6 +++ 5 files changed, 94 insertions(+), 10 deletions(-) create mode 100644 src/org/launchcode/studio7/BaseDisc.java create mode 100644 src/org/launchcode/studio7/OpticalDisc.java diff --git a/src/org/launchcode/studio7/BaseDisc.java b/src/org/launchcode/studio7/BaseDisc.java new file mode 100644 index 0000000..a9f4f05 --- /dev/null +++ b/src/org/launchcode/studio7/BaseDisc.java @@ -0,0 +1,48 @@ +package org.launchcode.studio7; +import java.util.ArrayList; + +public abstract class BaseDisc { + private String name; + private int storageCapacity; + private int remainingCapacity; + private int capacityUsed; + private String diskType; + private ArrayList contents; + + public BaseDisc(String aName, int maxCapacity, String aType, int someUsedCapacity) { + name = aName; + storageCapacity = maxCapacity; + diskType = aType; + capacityUsed = checkCapacity(someUsedCapacity); + remainingCapacity = spaceLeft(); + } + + private int checkCapacity(int dataWritten) { + if (storageCapacity < dataWritten){ + return storageCapacity; + } + return dataWritten; + } + + private int spaceLeft(){ + return storageCapacity - capacityUsed; + } + + public String diskInfo(){ + String output = String.format("\nDisk Name: %s\nMax capacity: %d" + + "\nSpace used: %d" + + "\nAvailable space: %d\n", name, storageCapacity, capacityUsed, remainingCapacity); + return output; + } + + public String writeData(int dataSize){ + if (dataSize > remainingCapacity){ + return "Not enough disc space!"; + } + capacityUsed += dataSize; + remainingCapacity -= dataSize; + + return "Data written to disc. Remaining space = " + remainingCapacity; + } + +} diff --git a/src/org/launchcode/studio7/CD.java b/src/org/launchcode/studio7/CD.java index 13a0ff4..5c7ad35 100644 --- a/src/org/launchcode/studio7/CD.java +++ b/src/org/launchcode/studio7/CD.java @@ -1,10 +1,18 @@ package org.launchcode.studio7; -public class CD { +public class CD extends BaseDisc implements OpticalDisc{ - // TODO: Implement your custom interface. + public CD(String aName, int maxCapacity, String aType, int someUsedCapacity){ + super(aName, maxCapacity, aType, someUsedCapacity); + } - // TODO: Determine which fields, methods, and constructors can be extended from the base class and which ones - // need to be declared separately. + @Override + public void spinDisc() { + System.out.println("A CD spins at a rate of 200 - 500 rpm."); + } + @Override + public void readData() { + System.out.println("Would you like to play a game?"); + } } diff --git a/src/org/launchcode/studio7/DVD.java b/src/org/launchcode/studio7/DVD.java index 7754214..db7a51b 100644 --- a/src/org/launchcode/studio7/DVD.java +++ b/src/org/launchcode/studio7/DVD.java @@ -1,10 +1,22 @@ package org.launchcode.studio7; -public class DVD { +public class DVD extends BaseDisc implements OpticalDisc { - // TODO: Implement your custom interface. + public DVD(String aName, int maxCapacity, String aType, int someUsedCapacity) { + super(aName, maxCapacity, aType, someUsedCapacity); + } + + @Override + public void spinDisc() { + System.out.println("A DVD spins at a rate of 570 - 1600 rpm."); + } + + @Override + public void readData() { + System.out.println("I'm sorry, Dave. I'm afraid I can't do that."); + } - // TODO: Determine which fields, methods, and constructors can be extended from the base class and which ones - // need to be declared separately. } + + diff --git a/src/org/launchcode/studio7/Main.java b/src/org/launchcode/studio7/Main.java index 59ff9bd..5320e28 100644 --- a/src/org/launchcode/studio7/Main.java +++ b/src/org/launchcode/studio7/Main.java @@ -4,9 +4,19 @@ public class Main { public static void main(String[] args){ - // TODO: Declare and initialize a CD and a DVD object. + CD cd = new CD("CD Example", 700, "CD-R", 350); + DVD dvd = new DVD("DVD Example", 4700, "DVD-R", 1450); - // TODO: Call each CD and DVD method to verify that they work as expected. + cd.spinDisc(); + dvd.spinDisc(); + cd.readData(); + dvd.readData(); + + System.out.println(cd.writeData(275)); + System.out.println(dvd.writeData(8000)); + + System.out.println(cd.diskInfo()); + System.out.println(dvd.diskInfo()); } } diff --git a/src/org/launchcode/studio7/OpticalDisc.java b/src/org/launchcode/studio7/OpticalDisc.java new file mode 100644 index 0000000..15cf242 --- /dev/null +++ b/src/org/launchcode/studio7/OpticalDisc.java @@ -0,0 +1,6 @@ +package org.launchcode.studio7; + +public interface OpticalDisc { + void spinDisc(); + void readData(); +}