From fc12bc5bdd329f1b0a6a231b15e2bb6bbb001a65 Mon Sep 17 00:00:00 2001 From: Olga Berezhna Date: Thu, 8 Dec 2016 17:10:02 +0200 Subject: [PATCH 1/4] EI done --- .../java/extendedinteger/ExtendedInteger.java | 81 +++++++++++++------ 1 file changed, 57 insertions(+), 24 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..9183e9e 100644 --- a/src/main/java/school/lemon/changerequest/java/extendedinteger/ExtendedInteger.java +++ b/src/main/java/school/lemon/changerequest/java/extendedinteger/ExtendedInteger.java @@ -4,9 +4,11 @@ * Integer representation with some additional features */ public class ExtendedInteger { + private int value; public ExtendedInteger(int value) { - //TODO: implement me + + this.value = value; } /** @@ -15,8 +17,7 @@ public ExtendedInteger(int value) { * @return true if value is even, false - otherwise */ public static boolean isEven(int value) { - //TODO: implement me - return false; + return value%2 == 0; } /** @@ -25,8 +26,8 @@ public static boolean isEven(int value) { * @return true if value is odd, false - otherwise */ public static boolean isOdd(int value) { - //TODO: implement me - return false; + + return value%2 != 0; } /** @@ -35,8 +36,15 @@ public static boolean isOdd(int value) { * @return true if value is prime, false - otherwise */ public static boolean isPrime(int value) { - //TODO: implement me - return false; + + if (value == 1) { + return false; + } + for (int d = 2; d*d Date: Thu, 8 Dec 2016 17:19:34 +0200 Subject: [PATCH 2/4] EI done --- .../changerequest/java/extendedinteger/ExtendedInteger.java | 3 +++ 1 file changed, 3 insertions(+) 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 9183e9e..e56564c 100644 --- a/src/main/java/school/lemon/changerequest/java/extendedinteger/ExtendedInteger.java +++ b/src/main/java/school/lemon/changerequest/java/extendedinteger/ExtendedInteger.java @@ -73,10 +73,13 @@ public static ExtendedInteger parseInt(String value) { 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 Date: Thu, 8 Dec 2016 18:10:26 +0200 Subject: [PATCH 3/4] Cont done --- .../java/container/Container.java | 1 + .../java/container/ContainerImpl.java | 58 +++++++++++++++---- 2 files changed, 48 insertions(+), 11 deletions(-) diff --git a/src/main/java/school/lemon/changerequest/java/container/Container.java b/src/main/java/school/lemon/changerequest/java/container/Container.java index e47af7e..a33ce25 100644 --- a/src/main/java/school/lemon/changerequest/java/container/Container.java +++ b/src/main/java/school/lemon/changerequest/java/container/Container.java @@ -2,6 +2,7 @@ public interface Container { + int INITIAL_ARRAY_SIZE = 10; /** 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..0a3cbbf 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,74 @@ package school.lemon.changerequest.java.container; public class ContainerImpl implements Container{ + private int size; + private int[] array; + + public ContainerImpl(){ + this.size = size(); + this.array = new int[INITIAL_ARRAY_SIZE]; + } @Override public int size() { - // TODO: please implement me - return 0; + + return size; } @Override public void clear() { - // TODO: please implement me + 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 + + if (array.length == size) { + int[] newArray = new int[array.length*3]; + System.arraycopy(array, 0, newArray, 0, array.length); + array = newArray; + } + 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); + return true; + } + + private void checkSize() { + + if (size == array.length) { + int[] newArray = new int[array.length*3]; + System.arraycopy(array, 0, newArray, 0, array.length); + array = newArray; + } } @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; + + } } From 21d1ff79ba1e054f9bbb5d2392b728f00bcb8b3b Mon Sep 17 00:00:00 2001 From: Olga Berezhna Date: Sun, 11 Dec 2016 22:49:09 +0200 Subject: [PATCH 4/4] HW_OOP done --- .../java/extendedinteger/ExtendedInteger.java | 43 +++++++------ .../changerequest/java/vehicles/Airplane.java | 56 ++++++++++++++++ .../changerequest/java/vehicles/Boat.java | 55 ++++++++++++++++ .../changerequest/java/vehicles/Car.java | 64 +++++++++++++++++++ .../changerequest/java/vehicles/IVehicle.java | 1 + .../changerequest/java/vehicles/Vehicle.java | 45 +++++++++++++ .../java/vehicles/VehicleFactory.java | 19 ++++-- 7 files changed, 257 insertions(+), 26 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 create mode 100644 src/main/java/school/lemon/changerequest/java/vehicles/Vehicle.java 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 e56564c..b6fbcd2 100644 --- a/src/main/java/school/lemon/changerequest/java/extendedinteger/ExtendedInteger.java +++ b/src/main/java/school/lemon/changerequest/java/extendedinteger/ExtendedInteger.java @@ -37,7 +37,8 @@ public static boolean isOdd(int value) { */ public static boolean isPrime(int value) { - if (value == 1) { + if (value == 2) return true; + if (value < 2 || value % 2 == 0) { return false; } for (int d = 2; d*d 0; i--) { if (Character.isDigit(value.charAt(i))) { - sb = sb.append(value.charAt(i)); - } - else return null; + val = val + Character.getNumericValue(value.charAt(i)) * (int) Math.pow(10.0, j); + j++; + } else return null; } - return new ExtendedInteger (new Integer(value)); - + if (Character.isDigit(value.charAt(0))) { + val = val + Character.getNumericValue(value.charAt(0)) * (int) Math.pow(10.0, j); + + } else if (value.startsWith("-")) { + val = val * (-1); + } else if(value.startsWith("+")) {} + else return null; + ExtendedInteger newInt = new ExtendedInteger(val); + return newInt; } + + /** * Get int representation of {@code ExtendedInteger} * @return int representation @@ -143,13 +148,11 @@ public boolean equals(int value) { */ public boolean equals(Object obj) { + if (obj == null) return false; - if (obj instanceof ExtendedInteger) { - ExtendedInteger extendedInteger = (ExtendedInteger) obj; - return true; - } + if (!(obj instanceof ExtendedInteger)) return false; + return ((ExtendedInteger) obj).getValue() == this.value; - else return false; } } 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..73ce78b --- /dev/null +++ b/src/main/java/school/lemon/changerequest/java/vehicles/Airplane.java @@ -0,0 +1,56 @@ +package school.lemon.changerequest.java.vehicles; + + +public class Airplane extends Vehicle implements IAirplane { + private int maximumHeightFeet; + + public Airplane(int maximumHeightFeet, int manufacturedYear, String model, String make) { + super(manufacturedYear, make, model); + this.maximumHeightFeet = maximumHeightFeet; + } + + @Override + public int getMaximumHeightFeet() { + return 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 boolean equals(Object obj) { + if (obj == null) return false; + + if (this == obj) return true; + + if (!(obj instanceof Airplane)) { + return false; + } + Airplane equalAir = (Airplane) obj; + return Math.abs(equalAir.maximumHeightFeet - maximumHeightFeet) <=1000 ; + } + + @Override + public String toString() { + + return String.format("This airplane is a %1$s %2$s %3$s that can reach %4$s feet.", this.getManufacturedYear(), this.getMake(), this.getModel(), this.getMaximumHeightFeet()); + } + +} 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..d9b8e9b --- /dev/null +++ b/src/main/java/school/lemon/changerequest/java/vehicles/Boat.java @@ -0,0 +1,55 @@ +package school.lemon.changerequest.java.vehicles; + + +public class Boat extends Vehicle implements IBoat { + private boolean motorized; + + Boat(int manufacturedYear, String make, String model, boolean motorized) { + super(manufacturedYear, make, model); + this.motorized = motorized; + } + + @Override + public boolean isMotorized() { + return 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 boolean equals(Object obj) { + if (obj == null) return false; + + if (this == obj) return true; + + if (!(obj instanceof Boat)) { + return false; + } + Boat equalBoat = (Boat) obj; + return equalBoat.motorized == motorized ; + } + + @Override + public String toString() { + + return String.format("This boat is a %1$s %2$s %3$s with %4$s", this.getManufacturedYear(), this.getMake(), this.getModel(), isMotorized() ? "(with motor)." : "."); + } +} 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..214be1a --- /dev/null +++ b/src/main/java/school/lemon/changerequest/java/vehicles/Car.java @@ -0,0 +1,64 @@ +package school.lemon.changerequest.java.vehicles; + + +public class Car extends Vehicle implements ICar{ + private int horsepower; + + + Car(int manufacturedYear, String make, String model, int horsepower) { + super(manufacturedYear, make, model); + this.horsepower = horsepower; + } + + @Override + public int getHorsepower() { + + return horsepower; + } + + @Override + public void setHorsepower(int horsepower) { + + this.horsepower = horsepower; + } + + + @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 boolean equals(Object obj) { + if (obj == null) return false; + + if (this == obj) return true; + + if (!(obj instanceof Car)) { + return false; + } + Car equalCar = (Car) obj; + return Math.abs(equalCar.horsepower - horsepower) <=10 ; + } + + @Override + public String toString() { + + 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()); + } + +} diff --git a/src/main/java/school/lemon/changerequest/java/vehicles/IVehicle.java b/src/main/java/school/lemon/changerequest/java/vehicles/IVehicle.java index c3dc41b..312f66d 100644 --- a/src/main/java/school/lemon/changerequest/java/vehicles/IVehicle.java +++ b/src/main/java/school/lemon/changerequest/java/vehicles/IVehicle.java @@ -8,6 +8,7 @@ public interface IVehicle extends Steerable { */ int getManufacturedYear(); + /** * Set vehicle manufactured year * @param year manufactured year 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..77fa305 --- /dev/null +++ b/src/main/java/school/lemon/changerequest/java/vehicles/Vehicle.java @@ -0,0 +1,45 @@ +package school.lemon.changerequest.java.vehicles; + + +public abstract class Vehicle implements IVehicle{ + private int manufacturedYear; + private String make; + private String model; + + public Vehicle(int manufacturedYear, String make, String model) { + this.manufacturedYear = manufacturedYear; + this.make = make; + this.model = model; + + } + + + public int getManufacturedYear() { + + return manufacturedYear; + } + + public void setManufacturedYear(int manufacturedYear) { + + this.manufacturedYear = manufacturedYear; + } + + public String getMake() { + + return make; + } + + public void setMake(String make) { + + this.make = make; + } + + public String getModel() { + + return model; + } + + public void setModel(String model) { + this.model = model; + } +} 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..e3ebe84 100644 --- a/src/main/java/school/lemon/changerequest/java/vehicles/VehicleFactory.java +++ b/src/main/java/school/lemon/changerequest/java/vehicles/VehicleFactory.java @@ -3,8 +3,10 @@ public final class VehicleFactory { private VehicleFactory() { + } + /** * Creates car * @param manufacturedYear manufactured year @@ -13,9 +15,12 @@ private VehicleFactory() { * @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; } /** @@ -27,8 +32,9 @@ public static ICar createCar(int manufacturedYear, String make, String model, in * @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 (maximumHeightFeet, manufacturedYear, make, model); + return airplane; } /** @@ -40,8 +46,9 @@ public static IAirplane createAirplane(int manufacturedYear, String make, String * @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; } }