From c90260eac1228170782f226e670c5af5bdc1dd28 Mon Sep 17 00:00:00 2001 From: Tanmay Date: Wed, 7 Sep 2022 16:05:54 +0100 Subject: [PATCH 1/2] Adds bird v0 branch. --- .../main/java/com/scaler/lld/bird/Bird.java | 24 +++++++++++++++++++ .../java/com/scaler/lld/bird/BirdType.java | 5 ++++ 2 files changed, 29 insertions(+) create mode 100644 oop/code/oop/src/main/java/com/scaler/lld/bird/Bird.java create mode 100644 oop/code/oop/src/main/java/com/scaler/lld/bird/BirdType.java diff --git a/oop/code/oop/src/main/java/com/scaler/lld/bird/Bird.java b/oop/code/oop/src/main/java/com/scaler/lld/bird/Bird.java new file mode 100644 index 0000000..b6a014c --- /dev/null +++ b/oop/code/oop/src/main/java/com/scaler/lld/bird/Bird.java @@ -0,0 +1,24 @@ +package com.scaler.lld.bird; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +@AllArgsConstructor +@Getter +public class Bird { + private Integer weight; + private String colour; + private String size; + private String beakType; + private BirdType type; + + public void fly() { + if (type == BirdType.Eagle) { + System.out.println("Eagle is flying"); + } else if (type == BirdType.Penguin) { + System.out.println("Penguin is swimming"); + } else if (type == BirdType.Parrot) { + System.out.println("Parrot is flying"); + } + } +} diff --git a/oop/code/oop/src/main/java/com/scaler/lld/bird/BirdType.java b/oop/code/oop/src/main/java/com/scaler/lld/bird/BirdType.java new file mode 100644 index 0000000..52136dd --- /dev/null +++ b/oop/code/oop/src/main/java/com/scaler/lld/bird/BirdType.java @@ -0,0 +1,5 @@ +package com.scaler.lld.bird; + +public enum BirdType { + Eagle, Penguin, Parrot +} From 95fb52ddb5cb5f6212ab03c3e094989fc18be8e4 Mon Sep 17 00:00:00 2001 From: Tanmay Date: Wed, 7 Sep 2022 16:10:47 +0100 Subject: [PATCH 2/2] Adds v2 for bird. --- .../src/main/java/com/scaler/lld/bird/Bird.java | 12 ++---------- .../src/main/java/com/scaler/lld/bird/Eagle.java | 14 ++++++++++++++ .../src/main/java/com/scaler/lld/bird/Parrot.java | 14 ++++++++++++++ .../src/main/java/com/scaler/lld/bird/Runner.java | 11 +++++++++++ 4 files changed, 41 insertions(+), 10 deletions(-) create mode 100644 oop/code/oop/src/main/java/com/scaler/lld/bird/Eagle.java create mode 100644 oop/code/oop/src/main/java/com/scaler/lld/bird/Parrot.java create mode 100644 oop/code/oop/src/main/java/com/scaler/lld/bird/Runner.java diff --git a/oop/code/oop/src/main/java/com/scaler/lld/bird/Bird.java b/oop/code/oop/src/main/java/com/scaler/lld/bird/Bird.java index b6a014c..a9d6488 100644 --- a/oop/code/oop/src/main/java/com/scaler/lld/bird/Bird.java +++ b/oop/code/oop/src/main/java/com/scaler/lld/bird/Bird.java @@ -5,20 +5,12 @@ import lombok.Getter; @AllArgsConstructor @Getter -public class Bird { +public abstract class Bird { private Integer weight; private String colour; private String size; private String beakType; private BirdType type; - public void fly() { - if (type == BirdType.Eagle) { - System.out.println("Eagle is flying"); - } else if (type == BirdType.Penguin) { - System.out.println("Penguin is swimming"); - } else if (type == BirdType.Parrot) { - System.out.println("Parrot is flying"); - } - } + public abstract void fly(); } diff --git a/oop/code/oop/src/main/java/com/scaler/lld/bird/Eagle.java b/oop/code/oop/src/main/java/com/scaler/lld/bird/Eagle.java new file mode 100644 index 0000000..0ed2b4d --- /dev/null +++ b/oop/code/oop/src/main/java/com/scaler/lld/bird/Eagle.java @@ -0,0 +1,14 @@ +package com.scaler.lld.bird; + +public class Eagle extends Bird { + + public Eagle(Integer weight, String colour, String size, String beakType, BirdType type) { + super(weight, colour, size, beakType, type); + } + + @Override + public void fly() { + System.out.println("\nEagle is flying"); + } + +} diff --git a/oop/code/oop/src/main/java/com/scaler/lld/bird/Parrot.java b/oop/code/oop/src/main/java/com/scaler/lld/bird/Parrot.java new file mode 100644 index 0000000..a3eae19 --- /dev/null +++ b/oop/code/oop/src/main/java/com/scaler/lld/bird/Parrot.java @@ -0,0 +1,14 @@ +package com.scaler.lld.bird; + +public class Parrot extends Bird { + + public Parrot(Integer weight, String colour, String size, String beakType, BirdType type) { + super(weight, colour, size, beakType, type); + } + + @Override + public void fly() { + System.out.println("\nParrot is flying"); + } + +} diff --git a/oop/code/oop/src/main/java/com/scaler/lld/bird/Runner.java b/oop/code/oop/src/main/java/com/scaler/lld/bird/Runner.java new file mode 100644 index 0000000..4ad2196 --- /dev/null +++ b/oop/code/oop/src/main/java/com/scaler/lld/bird/Runner.java @@ -0,0 +1,11 @@ +package com.scaler.lld.bird; + +public class Runner { + public static void main(String[] args) { + Bird parrot = new Parrot(10, "Green", "Small", "Sharp", BirdType.Parrot); + parrot.fly(); + + Bird eagle = new Eagle(20, "Brown", "Medium", "Sharp", BirdType.Eagle); + eagle.fly(); + } +}