From 41b818771e6758d102e12b4fa1afba247f4166a2 Mon Sep 17 00:00:00 2001 From: Ilkka Seppala Date: Fri, 8 May 2015 20:35:47 +0300 Subject: [PATCH] Added class hierarchies. --- .../src/main/java/com/iluwatar/Asteroid.java | 8 +++++ .../main/java/com/iluwatar/GameObject.java | 13 ++++++++ .../src/main/java/com/iluwatar/Meteoroid.java | 8 +++++ .../src/main/java/com/iluwatar/Rectangle.java | 33 +++++++++++++++++++ .../java/com/iluwatar/SpaceStationIss.java | 8 +++++ .../java/com/iluwatar/SpaceStationMir.java | 8 +++++ 6 files changed, 78 insertions(+) create mode 100644 double-dispatch/src/main/java/com/iluwatar/Asteroid.java create mode 100644 double-dispatch/src/main/java/com/iluwatar/GameObject.java create mode 100644 double-dispatch/src/main/java/com/iluwatar/Meteoroid.java create mode 100644 double-dispatch/src/main/java/com/iluwatar/Rectangle.java create mode 100644 double-dispatch/src/main/java/com/iluwatar/SpaceStationIss.java create mode 100644 double-dispatch/src/main/java/com/iluwatar/SpaceStationMir.java diff --git a/double-dispatch/src/main/java/com/iluwatar/Asteroid.java b/double-dispatch/src/main/java/com/iluwatar/Asteroid.java new file mode 100644 index 000000000..b6af2e85c --- /dev/null +++ b/double-dispatch/src/main/java/com/iluwatar/Asteroid.java @@ -0,0 +1,8 @@ +package com.iluwatar; + +public class Asteroid extends Meteoroid { + + public Asteroid(int left, int top, int right, int bottom) { + super(left, top, right, bottom); + } +} diff --git a/double-dispatch/src/main/java/com/iluwatar/GameObject.java b/double-dispatch/src/main/java/com/iluwatar/GameObject.java new file mode 100644 index 000000000..6e61c22b5 --- /dev/null +++ b/double-dispatch/src/main/java/com/iluwatar/GameObject.java @@ -0,0 +1,13 @@ +package com.iluwatar; + +public abstract class GameObject extends Rectangle { + + public GameObject(int left, int top, int right, int bottom) { + super(left, top, right, bottom); + } + + @Override + public String toString() { + return this.getClass().getSimpleName(); + } +} diff --git a/double-dispatch/src/main/java/com/iluwatar/Meteoroid.java b/double-dispatch/src/main/java/com/iluwatar/Meteoroid.java new file mode 100644 index 000000000..40435fcd7 --- /dev/null +++ b/double-dispatch/src/main/java/com/iluwatar/Meteoroid.java @@ -0,0 +1,8 @@ +package com.iluwatar; + +public class Meteoroid extends GameObject { + + public Meteoroid(int left, int top, int right, int bottom) { + super(left, top, right, bottom); + } +} diff --git a/double-dispatch/src/main/java/com/iluwatar/Rectangle.java b/double-dispatch/src/main/java/com/iluwatar/Rectangle.java new file mode 100644 index 000000000..7f588bcdf --- /dev/null +++ b/double-dispatch/src/main/java/com/iluwatar/Rectangle.java @@ -0,0 +1,33 @@ +package com.iluwatar; + +public class Rectangle { + + private int left; + private int top; + private int right; + private int bottom; + + public Rectangle(int left, int top, int right, int bottom) { + this.left = left; + this.top = top; + this.right = right; + this.bottom = bottom; + } + + public int getLeft() { + return left; + } + public int getTop() { + return top; + } + public int getRight() { + return right; + } + public int getBottom() { + return bottom; + } + + boolean intersectsWith(Rectangle r) { + return !(r.getLeft() > getRight() || r.getRight() < getLeft() || r.getTop() > getBottom() || r.getBottom() < getTop()); + } +} diff --git a/double-dispatch/src/main/java/com/iluwatar/SpaceStationIss.java b/double-dispatch/src/main/java/com/iluwatar/SpaceStationIss.java new file mode 100644 index 000000000..ad25e4cc1 --- /dev/null +++ b/double-dispatch/src/main/java/com/iluwatar/SpaceStationIss.java @@ -0,0 +1,8 @@ +package com.iluwatar; + +public class SpaceStationIss extends SpaceStationMir { + + public SpaceStationIss(int left, int top, int right, int bottom) { + super(left, top, right, bottom); + } +} diff --git a/double-dispatch/src/main/java/com/iluwatar/SpaceStationMir.java b/double-dispatch/src/main/java/com/iluwatar/SpaceStationMir.java new file mode 100644 index 000000000..9d630cf5c --- /dev/null +++ b/double-dispatch/src/main/java/com/iluwatar/SpaceStationMir.java @@ -0,0 +1,8 @@ +package com.iluwatar; + +public class SpaceStationMir extends GameObject { + + public SpaceStationMir(int left, int top, int right, int bottom) { + super(left, top, right, bottom); + } +}