From 034545f8dcdf3ef1258fbf1acf29c41069ca2c71 Mon Sep 17 00:00:00 2001 From: Sonia Baranova Date: Mon, 7 Aug 2023 15:26:19 +0300 Subject: [PATCH 1/2] added implementation of abstract class machine and its subclasses --- src/main/java/core/basesyntax/MainApp.java | 13 ++++++++++- .../core/basesyntax/machine/Bulldozer.java | 13 +++++++++++ .../core/basesyntax/machine/Excavator.java | 13 +++++++++++ .../java/core/basesyntax/machine/Machine.java | 23 +++++++++++++++++++ .../java/core/basesyntax/machine/Truck.java | 13 +++++++++++ 5 files changed, 74 insertions(+), 1 deletion(-) create mode 100644 src/main/java/core/basesyntax/machine/Bulldozer.java create mode 100644 src/main/java/core/basesyntax/machine/Excavator.java create mode 100644 src/main/java/core/basesyntax/machine/Machine.java create mode 100644 src/main/java/core/basesyntax/machine/Truck.java diff --git a/src/main/java/core/basesyntax/MainApp.java b/src/main/java/core/basesyntax/MainApp.java index f99e9a019..fe48dacbb 100644 --- a/src/main/java/core/basesyntax/MainApp.java +++ b/src/main/java/core/basesyntax/MainApp.java @@ -1,5 +1,16 @@ package core.basesyntax; -public class MainApp { +import core.basesyntax.machine.Bulldozer; +import core.basesyntax.machine.Excavator; +import core.basesyntax.machine.Machine; +import core.basesyntax.machine.Truck; +public class MainApp { + public static void main(String[] args) { + Machine[] machines = new Machine[]{new Excavator(), new Bulldozer(), new Truck()}; + for (Machine machine : machines) { + machine.doWork(); + machine.stopWork(); + } + } } diff --git a/src/main/java/core/basesyntax/machine/Bulldozer.java b/src/main/java/core/basesyntax/machine/Bulldozer.java new file mode 100644 index 000000000..c5b1b9470 --- /dev/null +++ b/src/main/java/core/basesyntax/machine/Bulldozer.java @@ -0,0 +1,13 @@ +package core.basesyntax.machine; + +public class Bulldozer extends Machine { + @Override + public void doWork() { + System.out.println("Bulldozer is doing its work!" + super.getStrength()); + } + + @Override + public void stopWork() { + System.out.println("Bulldozer has stopped its work!" + super.getRelaxing()); + } +} diff --git a/src/main/java/core/basesyntax/machine/Excavator.java b/src/main/java/core/basesyntax/machine/Excavator.java new file mode 100644 index 000000000..7a270db99 --- /dev/null +++ b/src/main/java/core/basesyntax/machine/Excavator.java @@ -0,0 +1,13 @@ +package core.basesyntax.machine; + +public class Excavator extends Machine { + @Override + public void doWork() { + System.out.println("Excavator is doing its work!" + super.getStrength()); + } + + @Override + public void stopWork() { + System.out.println("Excavator has stopped its work!" + super.getRelaxing()); + } +} diff --git a/src/main/java/core/basesyntax/machine/Machine.java b/src/main/java/core/basesyntax/machine/Machine.java new file mode 100644 index 000000000..4892988ce --- /dev/null +++ b/src/main/java/core/basesyntax/machine/Machine.java @@ -0,0 +1,23 @@ +package core.basesyntax.machine; + +public abstract class Machine { + private String strength = "💪"; //just for fun + private String relaxing = "🦥"; //just for fun x2 + + public abstract void doWork(); + + public abstract void stopWork(); + + /* + * I've decided to set package access for these methods because + * I don't want MainApp class to have access to these methods. + * */ + + String getStrength() { + return strength; + } + + String getRelaxing() { + return relaxing; + } +} diff --git a/src/main/java/core/basesyntax/machine/Truck.java b/src/main/java/core/basesyntax/machine/Truck.java new file mode 100644 index 000000000..bbbf76c8e --- /dev/null +++ b/src/main/java/core/basesyntax/machine/Truck.java @@ -0,0 +1,13 @@ +package core.basesyntax.machine; + +public class Truck extends Machine { + @Override + public void doWork() { + System.out.println("Truck is doing its work!" + super.getStrength()); + } + + @Override + public void stopWork() { + System.out.println("Truck has stopped its work!" + super.getRelaxing()); + } +} From 71806a5445ee28653ccc273d220fc909d83a6212 Mon Sep 17 00:00:00 2001 From: Sonia Baranova Date: Tue, 8 Aug 2023 12:41:52 +0300 Subject: [PATCH 2/2] removed the code that is not relevant to the task --- .../java/core/basesyntax/machine/Bulldozer.java | 4 ++-- .../java/core/basesyntax/machine/Excavator.java | 4 ++-- .../java/core/basesyntax/machine/Machine.java | 15 --------------- src/main/java/core/basesyntax/machine/Truck.java | 5 +++-- 4 files changed, 7 insertions(+), 21 deletions(-) diff --git a/src/main/java/core/basesyntax/machine/Bulldozer.java b/src/main/java/core/basesyntax/machine/Bulldozer.java index c5b1b9470..a59686a19 100644 --- a/src/main/java/core/basesyntax/machine/Bulldozer.java +++ b/src/main/java/core/basesyntax/machine/Bulldozer.java @@ -3,11 +3,11 @@ public class Bulldozer extends Machine { @Override public void doWork() { - System.out.println("Bulldozer is doing its work!" + super.getStrength()); + System.out.println("Bulldozer is doing its work!"); } @Override public void stopWork() { - System.out.println("Bulldozer has stopped its work!" + super.getRelaxing()); + System.out.println("Bulldozer has stopped its work!"); } } diff --git a/src/main/java/core/basesyntax/machine/Excavator.java b/src/main/java/core/basesyntax/machine/Excavator.java index 7a270db99..757d523e0 100644 --- a/src/main/java/core/basesyntax/machine/Excavator.java +++ b/src/main/java/core/basesyntax/machine/Excavator.java @@ -3,11 +3,11 @@ public class Excavator extends Machine { @Override public void doWork() { - System.out.println("Excavator is doing its work!" + super.getStrength()); + System.out.println("Excavator is doing its work!"); } @Override public void stopWork() { - System.out.println("Excavator has stopped its work!" + super.getRelaxing()); + System.out.println("Excavator has stopped its work!"); } } diff --git a/src/main/java/core/basesyntax/machine/Machine.java b/src/main/java/core/basesyntax/machine/Machine.java index 4892988ce..cec2e5322 100644 --- a/src/main/java/core/basesyntax/machine/Machine.java +++ b/src/main/java/core/basesyntax/machine/Machine.java @@ -1,23 +1,8 @@ package core.basesyntax.machine; public abstract class Machine { - private String strength = "💪"; //just for fun - private String relaxing = "🦥"; //just for fun x2 - public abstract void doWork(); public abstract void stopWork(); - /* - * I've decided to set package access for these methods because - * I don't want MainApp class to have access to these methods. - * */ - - String getStrength() { - return strength; - } - - String getRelaxing() { - return relaxing; - } } diff --git a/src/main/java/core/basesyntax/machine/Truck.java b/src/main/java/core/basesyntax/machine/Truck.java index bbbf76c8e..4d166f774 100644 --- a/src/main/java/core/basesyntax/machine/Truck.java +++ b/src/main/java/core/basesyntax/machine/Truck.java @@ -3,11 +3,12 @@ public class Truck extends Machine { @Override public void doWork() { - System.out.println("Truck is doing its work!" + super.getStrength()); + + System.out.println("Truck is doing its work!"); } @Override public void stopWork() { - System.out.println("Truck has stopped its work!" + super.getRelaxing()); + System.out.println("Truck has stopped its work!"); } }