Skip to content

Commit 6b244e3

Browse files
committed
interfacesStudio - Complete
1 parent a934dcc commit 6b244e3

5 files changed

Lines changed: 175 additions & 5 deletions

File tree

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
package org.launchcode;
2+
3+
public abstract class BaseDisc implements OpticalDisc {
4+
private String name;
5+
private int storageCapacity;
6+
private String contents;
7+
private String discType;
8+
9+
public BaseDisc(String name, int storageCapacity, String discType) {
10+
this.name = name;
11+
this.storageCapacity = storageCapacity;
12+
this.discType = discType;
13+
}
14+
15+
public String getName() {
16+
return name;
17+
}
18+
19+
public int getStorageCapacity() {
20+
return storageCapacity;
21+
}
22+
23+
public void setStorageCapacity(int storageCapacity) {
24+
this.storageCapacity = storageCapacity;
25+
}
26+
27+
public String getContents() {
28+
return contents;
29+
}
30+
31+
public void setContents(String contents) {
32+
this.contents = contents;
33+
}
34+
35+
public String getDiscType() {
36+
return discType;
37+
}
38+
39+
public void setDiscType(String discType) {
40+
this.discType = discType;
41+
}
42+
43+
@Override
44+
public void spinDisc() {
45+
System.out.println("Spinning the disc...");
46+
}
47+
48+
@Override
49+
public void writeData(String data) {
50+
this.contents = data;
51+
System.out.println("Writing data to the disc: " + data);
52+
}
53+
54+
@Override
55+
public String readData() {
56+
System.out.println("Reading data from the disc: " + contents);
57+
return contents;
58+
}
59+
60+
@Override
61+
public String reportInformation() {
62+
return "Name: " + name +
63+
"\nStorage Capacity: " + storageCapacity +
64+
"\nDisc Type: " + discType +
65+
"\nContents: " + contents;
66+
}
67+
}
Lines changed: 43 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,49 @@
11
package org.launchcode;
22

3-
public class CD {
3+
public class CD extends BaseDisc {
4+
private int spinRate;
45
// TODO: Implement your custom interface.
56

67
// TODO: Determine which fields, methods, and constructors can be extended from the base class and which ones
78
// need to be declared separately.
8-
}
9+
// Constructor for CD
10+
public CD(String name, int storageCapacity, int spinRate) {
11+
super(name, storageCapacity, "CD");
12+
this.spinRate = spinRate;
13+
}
14+
15+
public int getSpinRate() {
16+
return spinRate;
17+
}
18+
19+
public void setSpinRate(int spinRate) {
20+
this.spinRate = spinRate;
21+
}
22+
23+
@Override
24+
public void spinDisc() {
25+
System.out.println("CD spins at a rate of: " + spinRate + " rpm.");
26+
}
27+
28+
@Override
29+
public void writeData(String data) {
30+
System.out.println("Writing data to CD: " + data);
31+
setContents(data);
32+
}
33+
34+
@Override
35+
public String readData() {
36+
String data = getContents();
37+
System.out.println("Reading data from CD: " + data);
38+
return data;
39+
}
40+
41+
@Override
42+
public String reportInformation() {
43+
return "Name: " + getName() +
44+
"\nStorage Capacity: " + getStorageCapacity() +
45+
"\nDisc Type: " + getDiscType() +
46+
"\nContents: " + getContents() +
47+
"\nSpin Rate: " + spinRate + " rpm";
48+
}
49+
}
Lines changed: 43 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,49 @@
11
package org.launchcode;
22

3-
public class DVD {
3+
public class DVD extends BaseDisc {
4+
private int spinRate;
45
// TODO: Implement your custom interface.
56

67
// TODO: Determine which fields, methods, and constructors can be extended from the base class and which ones
78
// need to be declared separately.
8-
}
9+
// Constructor for DVD
10+
public DVD(String name, int storageCapacity, int spinRate) {
11+
super(name, storageCapacity, "DVD");
12+
this.spinRate = spinRate;
13+
}
14+
15+
public int getSpinRate() {
16+
return spinRate;
17+
}
18+
19+
public void setSpinRate(int spinRate) {
20+
this.spinRate = spinRate;
21+
}
22+
23+
@Override
24+
public void spinDisc() {
25+
System.out.println("DVD spins at a rate of: " + spinRate + " rpm.");
26+
}
27+
28+
@Override
29+
public void writeData(String data) {
30+
System.out.println("Writing data to DVD: " + data);
31+
setContents(data);
32+
}
33+
34+
@Override
35+
public String readData() {
36+
String data = getContents();
37+
System.out.println("Reading data from DVD: " + data);
38+
return data;
39+
}
40+
41+
@Override
42+
public String reportInformation() {
43+
return "Name: " + getName() +
44+
"\nStorage Capacity: " + getStorageCapacity() +
45+
"\nDisc Type: " + getDiscType() +
46+
"\nContents: " + getContents() +
47+
"\nSpin Rate: " + spinRate + " rpm";
48+
}
49+
}

interfaces/studio/spinning-discs-studio/src/main/java/org/launchcode/Main.java

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,20 @@ public class Main {
44
public static void main(String[] args) {
55

66
// TODO: Declare and initialize a CD and a DVD object.
7-
7+
// NO LOL
88
// TODO: Call each CD and DVD method to verify that they work as expected.
9+
// NOOOO LOL
10+
// Create a CD object
11+
CD myCd = new CD("Music CD", 700, 200);
12+
13+
// Create a DVD object
14+
DVD myDvd = new DVD("Movie DVD", 4700, 1200);
15+
16+
// Test the spinDisc method for CD and DVD
17+
myCd.spinDisc();
18+
myDvd.spinDisc();
19+
20+
// You can perform other operations on myCd and myDvd as needed
21+
// I DON'T WANT TO :'( - QK
922
}
1023
}
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
package org.launchcode;
2+
3+
public interface OpticalDisc {
4+
void spinDisc();
5+
void writeData(String data);
6+
String readData();
7+
String reportInformation();
8+
}

0 commit comments

Comments
 (0)