From 12fb49ed4739218598b41890c82ecaefd9cf1e06 Mon Sep 17 00:00:00 2001 From: Yaroslav Pavlinskiy Date: Mon, 5 Dec 2016 01:24:43 +0200 Subject: [PATCH 1/8] Task Vehicles done. --- .../changerequest/java/vehicles/Airplane.java | 92 ++++++++++++++++++ .../changerequest/java/vehicles/Boat.java | 96 +++++++++++++++++++ .../changerequest/java/vehicles/Car.java | 92 ++++++++++++++++++ .../java/vehicles/VehicleFactory.java | 41 +++++--- 4 files changed, 306 insertions(+), 15 deletions(-) create mode 100644 src/main/java/school/lemon/changerequest/java/vehicles/Airplane.java create mode 100644 src/main/java/school/lemon/changerequest/java/vehicles/Boat.java create mode 100644 src/main/java/school/lemon/changerequest/java/vehicles/Car.java diff --git a/src/main/java/school/lemon/changerequest/java/vehicles/Airplane.java b/src/main/java/school/lemon/changerequest/java/vehicles/Airplane.java new file mode 100644 index 0000000..9c4004f --- /dev/null +++ b/src/main/java/school/lemon/changerequest/java/vehicles/Airplane.java @@ -0,0 +1,92 @@ +package school.lemon.changerequest.java.vehicles; + +/** + * Created by Yaroslav Pavlinskiy on 04.12.2016. + */ +public class Airplane implements IAirplane { + private int manufacturedYear; + private String make; + private String model; + private int maximumHeightFeet; + + private Airplane(int manufacturedYear, String make, String model, int maximumHeightFeet) { + this.manufacturedYear = manufacturedYear; + this.make = make; + this.model = model; + this.maximumHeightFeet = maximumHeightFeet; + } + + @Override + public int getManufacturedYear() { + return this.manufacturedYear; + } + + @Override + public void setManufacturedYear(int year) { + this.manufacturedYear = year; + } + + @Override + public String getMake() { + return this.make; + } + + @Override + public void setMake(String make) { + this.make = make; + } + + @Override + public String getModel() { + return this.model; + } + + @Override + public void setModel(String model) { + this.model = model; + } + + @Override + public int getMaximumHeightFeet() { + return this.maximumHeightFeet; + } + + @Override + public void setMaximumHeightFeet(int maximumHeightFeet) { + this.maximumHeightFeet = maximumHeightFeet; + } + + @Override + public String accelerate() { + return "fire engines on wings"; + } + + @Override + public String steerLeft() { + return "lift wing flaps to turn left"; + } + + @Override + public String steerRight() { + return "lift wing flaps to turn right"; + } + + @Override + public String toString() { + return "This airplane is a " + getManufacturedYear() + " " + this.getMake() + " " + this.getModel() + " that can reach " + + this.getMaximumHeightFeet() + " feet."; + + } + + @Override + public boolean equals(Object obj) { + obj = (Airplane) obj; + if (obj == null) + return false; + if (this == obj) + return true; + if (this.getMaximumHeightFeet() + 1000 != ((Airplane) obj).getMaximumHeightFeet() || this.getMaximumHeightFeet() - 1000 != ((Airplane) obj).getMaximumHeightFeet()) + return true; + return false; + } +} diff --git a/src/main/java/school/lemon/changerequest/java/vehicles/Boat.java b/src/main/java/school/lemon/changerequest/java/vehicles/Boat.java new file mode 100644 index 0000000..7fee40c --- /dev/null +++ b/src/main/java/school/lemon/changerequest/java/vehicles/Boat.java @@ -0,0 +1,96 @@ +package school.lemon.changerequest.java.vehicles; + +/** + * Created by Yaroslav Pavlinskiy on 02.12.2016. + */ +public class Boat implements IBoat { + private int manufacturedYears; + private String make; + private String model; + private boolean motorized; + + public Boat(int manufacturedYears, String make, String model, boolean motorized) { + this.manufacturedYears = manufacturedYears; + this.make = make; + this.model = model; + this.motorized = motorized; + } + + @Override + public int getManufacturedYear() { + return this.manufacturedYears; + } + + @Override + public void setManufacturedYear(int year) { + this.manufacturedYears = year; + } + + @Override + public String getMake() { + return this.make; + } + + @Override + public void setMake(String make) { + this.make = make; + } + + @Override + public String getModel() { + return this.model; + } + + @Override + public void setModel(String model) { + this.model = model; + } + + @Override + public boolean isMotorized() { + return this.motorized; + } + + @Override + public void setMotorized(boolean motorized) { + this.motorized = motorized; + } + + @Override + public String accelerate() { + return "jet water"; + } + + @Override + public String steerLeft() { + return "turn tiller left"; + } + + @Override + public String steerRight() { + return "turn tiller right"; + } + + @Override + public String toString() { + if (this.motorized) + return "This boat is a " + this.getManufacturedYear() + " " + this.getMake() + " " + this.getModel() + " (with motor)."; + return "This boat is a " + this.getManufacturedYear() + " " + this.getMake() + " " + this.getModel() + "."; + } + + @Override + public boolean equals(Object obj) { + obj = (Boat) obj; + if (this.toString() == obj.toString()) + return true; + return false; + } + + public int compareTo(Object obj) { + obj = (Boat) obj; + int result = obj.toString().compareTo(this.toString()); + return result; + + } + +} diff --git a/src/main/java/school/lemon/changerequest/java/vehicles/Car.java b/src/main/java/school/lemon/changerequest/java/vehicles/Car.java new file mode 100644 index 0000000..a5623fd --- /dev/null +++ b/src/main/java/school/lemon/changerequest/java/vehicles/Car.java @@ -0,0 +1,92 @@ +package school.lemon.changerequest.java.vehicles; + +/** + * Created by Yaroslav Pavlinskiy on 02.12.2016. + */ +public class Car implements ICar { + private int manufacturedYears; + private String make; + private String model; + private int horespower; + + public Car(int manufacturedYears, String make, String model, int horespower) { + this.manufacturedYears = manufacturedYears; + this.make = make; + this.model = model; + this.horespower = horespower; + } + + @Override + public int getHorsepower() { + return this.horespower; + } + + @Override + public void setHorsepower(int horsepower) { + this.horespower = horsepower; + } + + @Override + public int getManufacturedYear() { + return this.manufacturedYears; + } + + @Override + public void setManufacturedYear(int year) { + this.manufacturedYears = year; + } + + @Override + public String getMake() { + return this.make; + } + + @Override + public void setMake(String make) { + this.make = make; + } + + @Override + public String getModel() { + return this.model; + } + + @Override + public void setModel(String model) { + this.model = model; + } + + @Override + public String accelerate() { + return "fire pistons, turn wheels"; + } + + @Override + public String steerLeft() { + return "turn wheels left"; + } + + @Override + public String steerRight() { + return "turn wheels right"; + } + + @Override + public String toString() { + return "This car is a " + this.getManufacturedYear() + " " + this.getMake() + " " + this.getModel() + " with " + this.getHorsepower() + " hp."; + } + + @Override + public boolean equals(Object obj) { + if (obj instanceof Boat) + obj = (Car) obj; + if (obj == null) + return false; + if (this == obj) + return true; + if (this.getHorsepower() + 10 != ((Car) obj).getHorsepower() || this.getHorsepower() - 10 != ((Car) obj).getHorsepower()) + return true; + return false; + } + +} diff --git a/src/main/java/school/lemon/changerequest/java/vehicles/VehicleFactory.java b/src/main/java/school/lemon/changerequest/java/vehicles/VehicleFactory.java index 7856f45..ead3d21 100644 --- a/src/main/java/school/lemon/changerequest/java/vehicles/VehicleFactory.java +++ b/src/main/java/school/lemon/changerequest/java/vehicles/VehicleFactory.java @@ -7,41 +7,52 @@ private VehicleFactory() { /** * Creates car + * * @param manufacturedYear manufactured year - * @param make manufacturer - * @param model of car - * @param horsepower of car + * @param make manufacturer + * @param model of car + * @param horsepower of car * @return instance of car */ public static ICar createCar(int manufacturedYear, String make, String model, int horsepower) { - // TODO: please implement me - return null; + Car car = new Car(manufacturedYear, make, model, horsepower); + return car; + } /** * Creates airplane - * @param manufacturedYear manufactured year - * @param make manufacturer - * @param model of airplane + * + * @param manufacturedYear manufactured year + * @param make manufacturer + * @param model of airplane * @param maximumHeightFeet of airplane * @return instance of airplane */ public static IAirplane createAirplane(int manufacturedYear, String make, String model, int maximumHeightFeet) { - // TODO: please implement me - return null; + Airplane airplane = new Airplane(manufacturedYear, make, model, maximumHeightFeet); + return airplane; } /** * Creates boat + * * @param manufacturedYear manufactured year - * @param make manufacturer - * @param model of boat - * @param motorized is boat motorized + * @param make manufacturer + * @param model of boat + * @param motorized is boat motorized * @return instance of boat */ public static IBoat createBoat(int manufacturedYear, String make, String model, boolean motorized) { - // TODO: please implement me - return null; + Boat boat = new Boat(manufacturedYear, make, model, motorized); + return boat; + } + + public static void main(String[] args) { + IBoat boat = createBoat(1997, "VIS", "Aq1", true); + System.out.println(boat.getMake()); + System.out.println(boat.toString()); + } } From 13f126a2ed3558b4b2f7190c9d42d8771d6edf9f Mon Sep 17 00:00:00 2001 From: Yaroslav Pavlinskiy Date: Mon, 5 Dec 2016 01:32:23 +0200 Subject: [PATCH 2/8] Fixed mistake --- .../java/school/lemon/changerequest/java/vehicles/Airplane.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/school/lemon/changerequest/java/vehicles/Airplane.java b/src/main/java/school/lemon/changerequest/java/vehicles/Airplane.java index 9c4004f..8706702 100644 --- a/src/main/java/school/lemon/changerequest/java/vehicles/Airplane.java +++ b/src/main/java/school/lemon/changerequest/java/vehicles/Airplane.java @@ -9,7 +9,7 @@ public class Airplane implements IAirplane { private String model; private int maximumHeightFeet; - private Airplane(int manufacturedYear, String make, String model, int maximumHeightFeet) { + public Airplane(int manufacturedYear, String make, String model, int maximumHeightFeet) { this.manufacturedYear = manufacturedYear; this.make = make; this.model = model; From 9cd925cf3fa84d6678ec2278b44305d852bed4a2 Mon Sep 17 00:00:00 2001 From: Yaroslav Pavlinskiy Date: Mon, 5 Dec 2016 01:54:20 +0200 Subject: [PATCH 3/8] Task ExtendInteger done. --- .../java/extendedinteger/ExtendedInteger.java | 68 +++++++++++++------ 1 file changed, 47 insertions(+), 21 deletions(-) diff --git a/src/main/java/school/lemon/changerequest/java/extendedinteger/ExtendedInteger.java b/src/main/java/school/lemon/changerequest/java/extendedinteger/ExtendedInteger.java index a76f6fe..b9d383b 100644 --- a/src/main/java/school/lemon/changerequest/java/extendedinteger/ExtendedInteger.java +++ b/src/main/java/school/lemon/changerequest/java/extendedinteger/ExtendedInteger.java @@ -5,115 +5,141 @@ */ public class ExtendedInteger { + private int value; + public ExtendedInteger(int value) { - //TODO: implement me + this.value = value; } /** * Check whether specified value is even + * * @param value to check * @return true if value is even, false - otherwise */ public static boolean isEven(int value) { - //TODO: implement me - return false; + return value % 2 == 0; } /** * Check whether specified value is odd + * * @param value to check * @return true if value is odd, false - otherwise */ public static boolean isOdd(int value) { - //TODO: implement me - return false; + return value % 2 != 0; } /** * Check whether specified value is prime + * * @param value to check * @return true if value is prime, false - otherwise */ public static boolean isPrime(int value) { - //TODO: implement me - return false; + if (value < 2) + return false; + for (int i = 2; i * i <= value; i++) + if (value % i == 0) + return false; + return true; } /** * Parse specified char array and create instance of {@code ExtendedInteger} + * * @param value to parse * @return instance of {@code ExtendedInteger} or * null in case specified value is null or the value does not contain a parsable integer */ public static ExtendedInteger parseInt(char[] value) { - //TODO: implement me + if (value == null || value.length == 0) return null; + String newValue = new String(value); + return ExtendedInteger.parseInt(newValue); } /** * Parse specified string and create instance of {@code ExtendedInteger} + * * @param value to parse * @return instance of {@code ExtendedInteger} or * null in case specified value is null or the value does not contain a parsable integer */ public static ExtendedInteger parseInt(String value) { - //TODO: implement me + if (value == null | value.length() == 0) return null; + StringBuilder sb = new StringBuilder(); + if (Character.isDigit(value.charAt(0)) || value.startsWith("-")) + sb = sb.append(value.charAt(0)); + for (int i = 1; i < value.length(); i++) { + if (Character.isDigit(value.charAt(i))) { + sb = sb.append(value.charAt(i)); + } else return null; + } + return new ExtendedInteger(new Integer(value)); + } /** * Get int representation of {@code ExtendedInteger} + * * @return int representation */ public int getValue() { - //TODO: implement me - return 0; + return value; } /** * Check whether current value is even + * * @return true if value is even, false - otherwise */ public boolean isEven() { - //TODO: implement me - return false; + return this.value % 2 == 0; } /** * Check whether current value is odd + * * @return true if value is odd, false - otherwise */ public boolean isOdd() { - //TODO: implement me - return false; + return this.value % 2 != 0; } /** * Check whether current value is prime + * * @return true if value is prime, false - otherwise */ public boolean isPrime() { - //TODO: implement me - return false; + if (this.value < 2) + return false; + for (int i = 2; i * i <= this.value; i++) + if (this.value % i == 0) + return false; + return true; } /** * Check whether current {@code ExtendedInteger} is equal to specified int value + * * @return true if values are equal, false - otherwise */ public boolean equals(int value) { - //TODO: implement me - return false; + return this.value == value; } /** * Check whether current {@code ExtendedInteger} is equal to specified object + * * @return true if values are equal, false - otherwise */ @Override public boolean equals(Object obj) { - //TODO: implement me - return false; + return obj != null && obj instanceof ExtendedInteger && this.value == ((ExtendedInteger) obj).value; } } From 44e7a0a6e7e4fa88e5016559164f474002420667 Mon Sep 17 00:00:00 2001 From: Yaroslav Pavlinskiy Date: Mon, 5 Dec 2016 13:29:22 +0200 Subject: [PATCH 4/8] Fixed some mistake. --- .../java/extendedinteger/ExtendedInteger.java | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/src/main/java/school/lemon/changerequest/java/extendedinteger/ExtendedInteger.java b/src/main/java/school/lemon/changerequest/java/extendedinteger/ExtendedInteger.java index b9d383b..4714fbc 100644 --- a/src/main/java/school/lemon/changerequest/java/extendedinteger/ExtendedInteger.java +++ b/src/main/java/school/lemon/changerequest/java/extendedinteger/ExtendedInteger.java @@ -97,7 +97,7 @@ public int getValue() { * @return true if value is even, false - otherwise */ public boolean isEven() { - return this.value % 2 == 0; + return isEven(this.value); } /** @@ -106,7 +106,7 @@ public boolean isEven() { * @return true if value is odd, false - otherwise */ public boolean isOdd() { - return this.value % 2 != 0; + return isOdd(this.value); } /** @@ -115,12 +115,7 @@ public boolean isOdd() { * @return true if value is prime, false - otherwise */ public boolean isPrime() { - if (this.value < 2) - return false; - for (int i = 2; i * i <= this.value; i++) - if (this.value % i == 0) - return false; - return true; + return isPrime(this.value); } /** From e521bafea5e33c0680cccba6053bd2c5fccf50ce Mon Sep 17 00:00:00 2001 From: Yaroslav Pavlinskiy Date: Mon, 5 Dec 2016 14:36:33 +0200 Subject: [PATCH 5/8] Fixed some problems with String.Format --- .../school/lemon/changerequest/java/vehicles/Airplane.java | 4 +--- .../java/school/lemon/changerequest/java/vehicles/Boat.java | 4 ++-- .../java/school/lemon/changerequest/java/vehicles/Car.java | 2 +- 3 files changed, 4 insertions(+), 6 deletions(-) diff --git a/src/main/java/school/lemon/changerequest/java/vehicles/Airplane.java b/src/main/java/school/lemon/changerequest/java/vehicles/Airplane.java index 8706702..bc40fea 100644 --- a/src/main/java/school/lemon/changerequest/java/vehicles/Airplane.java +++ b/src/main/java/school/lemon/changerequest/java/vehicles/Airplane.java @@ -73,9 +73,7 @@ public String steerRight() { @Override public String toString() { - return "This airplane is a " + getManufacturedYear() + " " + this.getMake() + " " + this.getModel() + " that can reach " + - this.getMaximumHeightFeet() + " feet."; - + return String.format("This airplane is a %1$d %2$s %3$s that can reach %4$d feet.", this.getManufacturedYear(), this.getMake(), this.getModel(), this.getMaximumHeightFeet()); } @Override diff --git a/src/main/java/school/lemon/changerequest/java/vehicles/Boat.java b/src/main/java/school/lemon/changerequest/java/vehicles/Boat.java index 7fee40c..e717715 100644 --- a/src/main/java/school/lemon/changerequest/java/vehicles/Boat.java +++ b/src/main/java/school/lemon/changerequest/java/vehicles/Boat.java @@ -74,8 +74,8 @@ public String steerRight() { @Override public String toString() { if (this.motorized) - return "This boat is a " + this.getManufacturedYear() + " " + this.getMake() + " " + this.getModel() + " (with motor)."; - return "This boat is a " + this.getManufacturedYear() + " " + this.getMake() + " " + this.getModel() + "."; + return String.format("This boat is a %1$s %2$s %3$s (with motor).", this.getManufacturedYear(), this.getMake(), this.getModel()); + return String.format("This boat is a %1$s %2$s %3$s.", this.getManufacturedYear(), this.getMake(), this.getModel()); } @Override diff --git a/src/main/java/school/lemon/changerequest/java/vehicles/Car.java b/src/main/java/school/lemon/changerequest/java/vehicles/Car.java index a5623fd..23fc68d 100644 --- a/src/main/java/school/lemon/changerequest/java/vehicles/Car.java +++ b/src/main/java/school/lemon/changerequest/java/vehicles/Car.java @@ -73,7 +73,7 @@ public String steerRight() { @Override public String toString() { - return "This car is a " + this.getManufacturedYear() + " " + this.getMake() + " " + this.getModel() + " with " + this.getHorsepower() + " hp."; + return String.format("This car is a %1$s %2$s %3$s with %4$s hp.", this.getManufacturedYear(), this.getMake(), this.getModel(), this.getHorsepower()); } @Override From b0ce72682fbde600d154fcae0b6aca1aabfd1d8c Mon Sep 17 00:00:00 2001 From: Yaroslav Pavlinskiy Date: Mon, 5 Dec 2016 21:15:54 +0200 Subject: [PATCH 6/8] Add abstract class --- .../changerequest/java/vehicles/Airplane.java | 20 +++++---------- .../changerequest/java/vehicles/Boat.java | 25 +++++++++++-------- .../changerequest/java/vehicles/Car.java | 22 ++++++++-------- .../changerequest/java/vehicles/Vehicle.java | 16 ++++++++++++ 4 files changed, 46 insertions(+), 37 deletions(-) create mode 100644 src/main/java/school/lemon/changerequest/java/vehicles/Vehicle.java diff --git a/src/main/java/school/lemon/changerequest/java/vehicles/Airplane.java b/src/main/java/school/lemon/changerequest/java/vehicles/Airplane.java index bc40fea..faba2be 100644 --- a/src/main/java/school/lemon/changerequest/java/vehicles/Airplane.java +++ b/src/main/java/school/lemon/changerequest/java/vehicles/Airplane.java @@ -3,19 +3,15 @@ /** * Created by Yaroslav Pavlinskiy on 04.12.2016. */ -public class Airplane implements IAirplane { - private int manufacturedYear; - private String make; - private String model; +public class Airplane extends Vehicle implements IAirplane { private int maximumHeightFeet; public Airplane(int manufacturedYear, String make, String model, int maximumHeightFeet) { - this.manufacturedYear = manufacturedYear; - this.make = make; - this.model = model; + super(manufacturedYear, make, model); this.maximumHeightFeet = maximumHeightFeet; } + @Override public int getManufacturedYear() { return this.manufacturedYear; @@ -78,13 +74,9 @@ public String toString() { @Override public boolean equals(Object obj) { - obj = (Airplane) obj; - if (obj == null) + if (!(obj instanceof Airplane)) return false; - if (this == obj) - return true; - if (this.getMaximumHeightFeet() + 1000 != ((Airplane) obj).getMaximumHeightFeet() || this.getMaximumHeightFeet() - 1000 != ((Airplane) obj).getMaximumHeightFeet()) - return true; - return false; + Airplane enotherAirplane = (Airplane) obj; + return enotherAirplane.getMaximumHeightFeet() == this.getMaximumHeightFeet() + 500 && enotherAirplane.getMaximumHeightFeet() == this.getMaximumHeightFeet() - 500; } } diff --git a/src/main/java/school/lemon/changerequest/java/vehicles/Boat.java b/src/main/java/school/lemon/changerequest/java/vehicles/Boat.java index e717715..d1245f9 100644 --- a/src/main/java/school/lemon/changerequest/java/vehicles/Boat.java +++ b/src/main/java/school/lemon/changerequest/java/vehicles/Boat.java @@ -3,27 +3,24 @@ /** * Created by Yaroslav Pavlinskiy on 02.12.2016. */ -public class Boat implements IBoat { - private int manufacturedYears; - private String make; - private String model; +public class Boat extends Vehicle implements IBoat { + private boolean motorized; - public Boat(int manufacturedYears, String make, String model, boolean motorized) { - this.manufacturedYears = manufacturedYears; - this.make = make; - this.model = model; + public Boat(int manufacturedYear, String make, String model, boolean motorized) { + super(manufacturedYear, make, model); this.motorized = motorized; } + @Override public int getManufacturedYear() { - return this.manufacturedYears; + return this.manufacturedYear; } @Override public void setManufacturedYear(int year) { - this.manufacturedYears = year; + this.manufacturedYear = year; } @Override @@ -80,8 +77,14 @@ public String toString() { @Override public boolean equals(Object obj) { + if (obj == null) + return false; + if (this == obj) + return true; + if (!(obj instanceof Boat)) + return false; obj = (Boat) obj; - if (this.toString() == obj.toString()) + if (((Boat) obj).isMotorized() == this.isMotorized()) return true; return false; } diff --git a/src/main/java/school/lemon/changerequest/java/vehicles/Car.java b/src/main/java/school/lemon/changerequest/java/vehicles/Car.java index 23fc68d..fbddf6a 100644 --- a/src/main/java/school/lemon/changerequest/java/vehicles/Car.java +++ b/src/main/java/school/lemon/changerequest/java/vehicles/Car.java @@ -3,19 +3,16 @@ /** * Created by Yaroslav Pavlinskiy on 02.12.2016. */ -public class Car implements ICar { - private int manufacturedYears; - private String make; - private String model; +public class Car extends Vehicle implements ICar { + private int horespower; - public Car(int manufacturedYears, String make, String model, int horespower) { - this.manufacturedYears = manufacturedYears; - this.make = make; - this.model = model; + public Car(int manufacturedYear, String make, String model, int horespower) { + super(manufacturedYear, make, model); this.horespower = horespower; } + @Override public int getHorsepower() { return this.horespower; @@ -28,12 +25,12 @@ public void setHorsepower(int horsepower) { @Override public int getManufacturedYear() { - return this.manufacturedYears; + return this.manufacturedYear; } @Override public void setManufacturedYear(int year) { - this.manufacturedYears = year; + this.manufacturedYear = year; } @Override @@ -78,12 +75,13 @@ public String toString() { @Override public boolean equals(Object obj) { - if (obj instanceof Boat) - obj = (Car) obj; if (obj == null) return false; if (this == obj) return true; + if (!(obj instanceof Car)) + return false; + obj = (Car) obj; if (this.getHorsepower() + 10 != ((Car) obj).getHorsepower() || this.getHorsepower() - 10 != ((Car) obj).getHorsepower()) return true; return false; diff --git a/src/main/java/school/lemon/changerequest/java/vehicles/Vehicle.java b/src/main/java/school/lemon/changerequest/java/vehicles/Vehicle.java new file mode 100644 index 0000000..c93deb2 --- /dev/null +++ b/src/main/java/school/lemon/changerequest/java/vehicles/Vehicle.java @@ -0,0 +1,16 @@ +package school.lemon.changerequest.java.vehicles; + +/** + * Created by Yaroslav Pavlinskiy on 05.12.2016. + */ +public abstract class Vehicle { + protected int manufacturedYear; + protected String make; + protected String model; + + public Vehicle(int manufacturedYear, String make, String model) { + this.manufacturedYear = manufacturedYear; + this.make = make; + this.model = model; + } +} From 3d9a567b1ce8c537c0a91eb48b7056e196d67447 Mon Sep 17 00:00:00 2001 From: Yaroslav Pavlinskiy Date: Tue, 6 Dec 2016 00:07:26 +0200 Subject: [PATCH 7/8] All done. --- .../lemon/changerequest/java/vehicles/Airplane.java | 10 ++++++++-- .../school/lemon/changerequest/java/vehicles/Boat.java | 5 +++-- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/src/main/java/school/lemon/changerequest/java/vehicles/Airplane.java b/src/main/java/school/lemon/changerequest/java/vehicles/Airplane.java index faba2be..808b068 100644 --- a/src/main/java/school/lemon/changerequest/java/vehicles/Airplane.java +++ b/src/main/java/school/lemon/changerequest/java/vehicles/Airplane.java @@ -74,9 +74,15 @@ public String toString() { @Override public boolean equals(Object obj) { + if (obj == null) + return false; + if (this == obj) + return true; if (!(obj instanceof Airplane)) return false; - Airplane enotherAirplane = (Airplane) obj; - return enotherAirplane.getMaximumHeightFeet() == this.getMaximumHeightFeet() + 500 && enotherAirplane.getMaximumHeightFeet() == this.getMaximumHeightFeet() - 500; + obj = (Airplane) obj; + if (this.getMaximumHeightFeet() + 1000 > ((Airplane) obj).getMaximumHeightFeet() || this.getMaximumHeightFeet() - 1000 < ((Airplane) obj).getMaximumHeightFeet()) + return true; + return false; } } diff --git a/src/main/java/school/lemon/changerequest/java/vehicles/Boat.java b/src/main/java/school/lemon/changerequest/java/vehicles/Boat.java index d1245f9..4e479f6 100644 --- a/src/main/java/school/lemon/changerequest/java/vehicles/Boat.java +++ b/src/main/java/school/lemon/changerequest/java/vehicles/Boat.java @@ -84,9 +84,10 @@ public boolean equals(Object obj) { if (!(obj instanceof Boat)) return false; obj = (Boat) obj; - if (((Boat) obj).isMotorized() == this.isMotorized()) + if (this.motorized != ((Boat) obj).motorized) + return false; + else return true; - return false; } public int compareTo(Object obj) { From 6acaed778c99a0301aa53e4bf50ad9cfea324e88 Mon Sep 17 00:00:00 2001 From: Yaroslav Pavlinskiy Date: Tue, 6 Dec 2016 00:09:08 +0200 Subject: [PATCH 8/8] Task Container done. --- .../java/container/ContainerImpl.java | 47 +++++++++++++++---- 1 file changed, 37 insertions(+), 10 deletions(-) diff --git a/src/main/java/school/lemon/changerequest/java/container/ContainerImpl.java b/src/main/java/school/lemon/changerequest/java/container/ContainerImpl.java index 0cdb298..f532649 100644 --- a/src/main/java/school/lemon/changerequest/java/container/ContainerImpl.java +++ b/src/main/java/school/lemon/changerequest/java/container/ContainerImpl.java @@ -1,38 +1,65 @@ package school.lemon.changerequest.java.container; public class ContainerImpl implements Container{ + private int INITIAL_ARRAY_SIZE = 10; + private int[] array; + private int size; + + public ContainerImpl() { + this.array = new int[Container.INITIAL_ARRAY_SIZE]; + this.size = 0; + } @Override public int size() { - // TODO: please implement me - return 0; + return this.size; } @Override public void clear() { - // TODO: please implement me + this.size = 0; } @Override public Integer get(int index) { - // TODO: please implement me - return null; + if (index < 0 || index >= size) + return null; + return array[index]; } @Override public void add(int element) { - // TODO: please implement me + checkSize(); + array[size++] = element; + } @Override public boolean add(int element, int index) { - // TODO: please implement me - return false; + if (index < 0 || index > size) + return false; + checkSize(); + System.arraycopy(array, index, array, index + 1, size - index); + array[index] = element; + ++size; + return true; } @Override public boolean remove(int index) { - // TODO: please implement me - return false; + if (index < 0 || index >= size) + return false; + System.arraycopy(array, index + 1, array, index, size - index - 1); + --size; + return true; + } + + private void checkSize() { + if (size == array.length) { + int[] newArray = new int[array.length * 2]; + System.arraycopy(array, 0, newArray, 0, array.length); + array = newArray; + } } } +