From 756c3d08ccf8e6cdefd5c22341cd0b16a390be3b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=92=D1=8F=D1=87=D0=B5=D1=81=D0=BB=D0=B0=D0=B2=20=D0=A2?= =?UTF-8?q?=D0=B8=D1=85=D0=BE=D0=BD=D0=BE=D0=B2?= Date: Thu, 13 Oct 2022 18:35:59 +0300 Subject: [PATCH 01/13] part 1 --- src/ru/skypro/Main.java | 18 ++++++++- src/ru/skypro/transport/Bus.java | 18 +++++++++ src/ru/skypro/transport/Car.java | 17 +++++++++ src/ru/skypro/transport/Transport.java | 53 ++++++++++++++++++++++++++ src/ru/skypro/transport/Truck.java | 18 +++++++++ 5 files changed, 123 insertions(+), 1 deletion(-) create mode 100644 src/ru/skypro/transport/Bus.java create mode 100644 src/ru/skypro/transport/Car.java create mode 100644 src/ru/skypro/transport/Transport.java create mode 100644 src/ru/skypro/transport/Truck.java diff --git a/src/ru/skypro/Main.java b/src/ru/skypro/Main.java index 625884e..49df5fe 100644 --- a/src/ru/skypro/Main.java +++ b/src/ru/skypro/Main.java @@ -1,7 +1,23 @@ package ru.skypro; +import ru.skypro.transport.Bus; +import ru.skypro.transport.Car; +import ru.skypro.transport.Transport; +import ru.skypro.transport.Truck; + public class Main { public static void main(String[] args){ - + Transport car1 = new Car("brand1","car1",1.6); + Transport car2 = new Car("brand2","car2",2.0); + Transport bus1 = new Bus("brand1","bus1",3.0); + Transport truck1 = new Truck("brand2","truck1",4.0); + car1.startMoving(); + car2.startMoving(); + bus1.startMoving(); + truck1.startMoving(); + truck1.stopMoving(); + car1.stopMoving(); + bus1.stopMoving(); + car2.stopMoving(); } } diff --git a/src/ru/skypro/transport/Bus.java b/src/ru/skypro/transport/Bus.java new file mode 100644 index 0000000..c5f5e8b --- /dev/null +++ b/src/ru/skypro/transport/Bus.java @@ -0,0 +1,18 @@ +package ru.skypro.transport; + +public class Bus extends Transport { + + public Bus(String brand, String model, Double engineVolume) { + super(brand, model, engineVolume); + } + + @Override + public void startMoving() { + super.startMoving(); + } + + @Override + public void stopMoving() { + super.stopMoving(); + } +} diff --git a/src/ru/skypro/transport/Car.java b/src/ru/skypro/transport/Car.java new file mode 100644 index 0000000..c46cd2b --- /dev/null +++ b/src/ru/skypro/transport/Car.java @@ -0,0 +1,17 @@ +package ru.skypro.transport; + +public class Car extends Transport{ + public Car(String brand, String model, Double engineVolume) { + super(brand, model, engineVolume); + } + + @Override + public void startMoving() { + super.startMoving(); + } + + @Override + public void stopMoving() { + super.stopMoving(); + } +} diff --git a/src/ru/skypro/transport/Transport.java b/src/ru/skypro/transport/Transport.java new file mode 100644 index 0000000..dcb6486 --- /dev/null +++ b/src/ru/skypro/transport/Transport.java @@ -0,0 +1,53 @@ +package ru.skypro.transport; + +public abstract class Transport { + private String brand; + private String model; + private Double engineVolume; + + public Transport(String brand, String model, Double engineVolume) { + this.brand = brand == null || brand.equals("") ? "default" : brand; + this.model = model == null || model.equals("") ? "default" : model; + this.engineVolume = (engineVolume == null || engineVolume<0) ? 1.6 : engineVolume; + } + + public void startMoving(){ + System.out.println(this.getClass() +" "+ this.brand +" "+ this.model + "Начал движение"); + } + public void stopMoving(){ + System.out.println(this.getClass() +" "+ this.brand +" "+ this.model + "Закончил движение"); + } + + @Override + public String toString() { + return "Transport{" + + "brand='" + brand + '\'' + + ", model='" + model + '\'' + + ", engineVolume=" + engineVolume + + '}'; + } + + public String getBrand() { + return brand; + } + + public String getModel() { + return model; + } + + public void setBrand(String brand) { + this.brand = brand; + } + + public void setModel(String model) { + this.model = model; + } + + public Double getEngineVolume() { + return engineVolume; + } + + public void setEngineVolume(Double engineVolume) { + this.engineVolume = engineVolume; + } +} diff --git a/src/ru/skypro/transport/Truck.java b/src/ru/skypro/transport/Truck.java new file mode 100644 index 0000000..30cd4ab --- /dev/null +++ b/src/ru/skypro/transport/Truck.java @@ -0,0 +1,18 @@ +package ru.skypro.transport; + +public class Truck extends Transport{ + + public Truck(String brand, String model, Double engineVolume) { + super(brand, model, engineVolume); + } + + @Override + public void startMoving() { + System.out.println(super.getBrand() +" "+ super.getModel() + " Начал движение"); + } + + @Override + public void stopMoving() { + System.out.println(super.getBrand() +" "+ super.getModel() + " Закончил движение"); + } +} From 6263c3f6206820ba0f2c349ea0c908a45dfa4eb6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=92=D1=8F=D1=87=D0=B5=D1=81=D0=BB=D0=B0=D0=B2=20=D0=A2?= =?UTF-8?q?=D0=B8=D1=85=D0=BE=D0=BD=D0=BE=D0=B2?= Date: Thu, 13 Oct 2022 18:38:29 +0300 Subject: [PATCH 02/13] part 2 --- src/ru/skypro/transport/Competitive.java | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 src/ru/skypro/transport/Competitive.java diff --git a/src/ru/skypro/transport/Competitive.java b/src/ru/skypro/transport/Competitive.java new file mode 100644 index 0000000..6fe64c3 --- /dev/null +++ b/src/ru/skypro/transport/Competitive.java @@ -0,0 +1,7 @@ +package ru.skypro.transport; + +public interface Competitive { + void pitStop(); + void maxSpeed(); + void bestTime(); +} From 1217fb2fa2e5350e0034f2e30001bebb6d3cd224 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=92=D1=8F=D1=87=D0=B5=D1=81=D0=BB=D0=B0=D0=B2=20=D0=A2?= =?UTF-8?q?=D0=B8=D1=85=D0=BE=D0=BD=D0=BE=D0=B2?= Date: Thu, 13 Oct 2022 18:44:27 +0300 Subject: [PATCH 03/13] part 3 --- src/ru/skypro/Main.java | 15 ++++++++++++--- src/ru/skypro/transport/Bus.java | 16 +++++++++++++++- src/ru/skypro/transport/Car.java | 17 ++++++++++++++++- src/ru/skypro/transport/Truck.java | 17 ++++++++++++++++- 4 files changed, 59 insertions(+), 6 deletions(-) diff --git a/src/ru/skypro/Main.java b/src/ru/skypro/Main.java index 49df5fe..6e01618 100644 --- a/src/ru/skypro/Main.java +++ b/src/ru/skypro/Main.java @@ -7,10 +7,10 @@ public class Main { public static void main(String[] args){ - Transport car1 = new Car("brand1","car1",1.6); + Car car1 = new Car("brand1","car1",1.6); Transport car2 = new Car("brand2","car2",2.0); - Transport bus1 = new Bus("brand1","bus1",3.0); - Transport truck1 = new Truck("brand2","truck1",4.0); + Bus bus1 = new Bus("brand1","bus1",3.0); + Truck truck1 = new Truck("brand2","truck1",4.0); car1.startMoving(); car2.startMoving(); bus1.startMoving(); @@ -19,5 +19,14 @@ public static void main(String[] args){ car1.stopMoving(); bus1.stopMoving(); car2.stopMoving(); + car1.pitStop(); + car1.bestTime(); + car1.maxSpeed(); + truck1.pitStop(); + truck1.bestTime(); + truck1.maxSpeed(); + bus1.pitStop(); + bus1.bestTime(); + bus1.maxSpeed(); } } diff --git a/src/ru/skypro/transport/Bus.java b/src/ru/skypro/transport/Bus.java index c5f5e8b..85dcf64 100644 --- a/src/ru/skypro/transport/Bus.java +++ b/src/ru/skypro/transport/Bus.java @@ -1,6 +1,6 @@ package ru.skypro.transport; -public class Bus extends Transport { +public class Bus extends Transport implements Competitive { public Bus(String brand, String model, Double engineVolume) { super(brand, model, engineVolume); @@ -15,4 +15,18 @@ public void startMoving() { public void stopMoving() { super.stopMoving(); } + @Override + public void pitStop() { + System.out.println("false"); + } + + @Override + public void maxSpeed() { + System.out.println("200"); + } + + @Override + public void bestTime() { + System.out.println("9.00"); + } } diff --git a/src/ru/skypro/transport/Car.java b/src/ru/skypro/transport/Car.java index c46cd2b..88dc3f0 100644 --- a/src/ru/skypro/transport/Car.java +++ b/src/ru/skypro/transport/Car.java @@ -1,6 +1,6 @@ package ru.skypro.transport; -public class Car extends Transport{ +public class Car extends Transport implements Competitive{ public Car(String brand, String model, Double engineVolume) { super(brand, model, engineVolume); } @@ -14,4 +14,19 @@ public void startMoving() { public void stopMoving() { super.stopMoving(); } + + @Override + public void pitStop() { + System.out.println("false"); + } + + @Override + public void maxSpeed() { + System.out.println("160"); + } + + @Override + public void bestTime() { + System.out.println("10.00"); + } } diff --git a/src/ru/skypro/transport/Truck.java b/src/ru/skypro/transport/Truck.java index 30cd4ab..84edcee 100644 --- a/src/ru/skypro/transport/Truck.java +++ b/src/ru/skypro/transport/Truck.java @@ -1,6 +1,6 @@ package ru.skypro.transport; -public class Truck extends Transport{ +public class Truck extends Transport implements Competitive{ public Truck(String brand, String model, Double engineVolume) { super(brand, model, engineVolume); @@ -15,4 +15,19 @@ public void startMoving() { public void stopMoving() { System.out.println(super.getBrand() +" "+ super.getModel() + " Закончил движение"); } + + @Override + public void pitStop() { + System.out.println("true"); + } + + @Override + public void maxSpeed() { + System.out.println("330"); + } + + @Override + public void bestTime() { + System.out.println("6.00"); + } } From 0b0bb9211f1dede4fe48ac7b79a072c29b0da94c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=92=D1=8F=D1=87=D0=B5=D1=81=D0=BB=D0=B0=D0=B2=20=D0=A2?= =?UTF-8?q?=D0=B8=D1=85=D0=BE=D0=BD=D0=BE=D0=B2?= Date: Thu, 13 Oct 2022 19:11:06 +0300 Subject: [PATCH 04/13] part 4 --- src/ru/skypro/Main.java | 13 +++++++++---- src/ru/skypro/transport/Driver.java | 24 ++++++++++++++++++++++++ 2 files changed, 33 insertions(+), 4 deletions(-) create mode 100644 src/ru/skypro/transport/Driver.java diff --git a/src/ru/skypro/Main.java b/src/ru/skypro/Main.java index 6e01618..5af92ac 100644 --- a/src/ru/skypro/Main.java +++ b/src/ru/skypro/Main.java @@ -1,9 +1,6 @@ package ru.skypro; -import ru.skypro.transport.Bus; -import ru.skypro.transport.Car; -import ru.skypro.transport.Transport; -import ru.skypro.transport.Truck; +import ru.skypro.transport.*; public class Main { public static void main(String[] args){ @@ -28,5 +25,13 @@ public static void main(String[] args){ bus1.pitStop(); bus1.bestTime(); bus1.maxSpeed(); + Driver driver1 = new Driver<>("F I O 1", true,5); + Driver driver2 = new Driver<>("F I O 2", false,0); + Driver driver3 = new Driver<>("F I O 3", true,9); + Driver driver4 = new Driver<>("F I O 4", true,7); + driver1.refill(car1); + driver2.refill(car2); + driver3.refill(bus1); + driver4.refill(truck1); } } diff --git a/src/ru/skypro/transport/Driver.java b/src/ru/skypro/transport/Driver.java new file mode 100644 index 0000000..f11e4a8 --- /dev/null +++ b/src/ru/skypro/transport/Driver.java @@ -0,0 +1,24 @@ +package ru.skypro.transport; + +public class Driver { + private String fio; + private Boolean haveRights; + private Integer stazh; + + public Driver(String fio, Boolean haveRights, Integer stazh) { + this.fio = fio; + this.haveRights = haveRights; + this.stazh = stazh; + } + + public void startMoving(T transport){ + transport.startMoving(); + } + public void stopMoving(T transport){ + transport.stopMoving(); + + } + public void refill(T transport){ + System.out.println("водитель "+fio+" управляет автомобилем "+transport.getBrand()+" "+transport.getModel()+" и будет участвовать в заезде"); + } +} From 435a9ad445cddb666de662ba38b0eeaea2226673 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=92=D1=8F=D1=87=D0=B5=D1=81=D0=BB=D0=B0=D0=B2=20=D0=A2?= =?UTF-8?q?=D0=B8=D1=85=D0=BE=D0=BD=D0=BE=D0=B2?= Date: Sun, 23 Oct 2022 13:30:59 +0300 Subject: [PATCH 05/13] fixes --- src/ru/skypro/Main.java | 17 +++++++++-------- src/ru/skypro/transport/Driver.java | 13 ++++++++----- src/ru/skypro/transport/DriverB.java | 7 +++++++ src/ru/skypro/transport/DriverC.java | 7 +++++++ src/ru/skypro/transport/DriverD.java | 7 +++++++ 5 files changed, 38 insertions(+), 13 deletions(-) create mode 100644 src/ru/skypro/transport/DriverB.java create mode 100644 src/ru/skypro/transport/DriverC.java create mode 100644 src/ru/skypro/transport/DriverD.java diff --git a/src/ru/skypro/Main.java b/src/ru/skypro/Main.java index 5af92ac..35e44ee 100644 --- a/src/ru/skypro/Main.java +++ b/src/ru/skypro/Main.java @@ -25,13 +25,14 @@ public static void main(String[] args){ bus1.pitStop(); bus1.bestTime(); bus1.maxSpeed(); - Driver driver1 = new Driver<>("F I O 1", true,5); - Driver driver2 = new Driver<>("F I O 2", false,0); - Driver driver3 = new Driver<>("F I O 3", true,9); - Driver driver4 = new Driver<>("F I O 4", true,7); - driver1.refill(car1); - driver2.refill(car2); - driver3.refill(bus1); - driver4.refill(truck1); + Car car2c = (Car) car2; + Driver driver1 = new DriverB("F I O 1", true,5, car1); + Driver driver2 = new DriverB("F I O 2", false,0, car2c); + Driver driver3 = new DriverD("F I O 3", true,9, bus1); + Driver driver4 = new DriverC("F I O 4", true,7, truck1); + driver1.refill(); + driver2.refill(); + driver3.refill(); + driver4.refill(); } } diff --git a/src/ru/skypro/transport/Driver.java b/src/ru/skypro/transport/Driver.java index f11e4a8..f900c7d 100644 --- a/src/ru/skypro/transport/Driver.java +++ b/src/ru/skypro/transport/Driver.java @@ -1,24 +1,27 @@ package ru.skypro.transport; -public class Driver { +public abstract class Driver{ + + private final Transport transport; private String fio; private Boolean haveRights; private Integer stazh; - public Driver(String fio, Boolean haveRights, Integer stazh) { + public Driver(String fio, Boolean haveRights, Integer stazh, Transport transport) { this.fio = fio; this.haveRights = haveRights; this.stazh = stazh; + this.transport = transport; } - public void startMoving(T transport){ + public void startMoving(){ transport.startMoving(); } - public void stopMoving(T transport){ + public void stopMoving(){ transport.stopMoving(); } - public void refill(T transport){ + public void refill(){ System.out.println("водитель "+fio+" управляет автомобилем "+transport.getBrand()+" "+transport.getModel()+" и будет участвовать в заезде"); } } diff --git a/src/ru/skypro/transport/DriverB.java b/src/ru/skypro/transport/DriverB.java new file mode 100644 index 0000000..41aca26 --- /dev/null +++ b/src/ru/skypro/transport/DriverB.java @@ -0,0 +1,7 @@ +package ru.skypro.transport; + +public class DriverB extends Driver{ + public DriverB(String fio, Boolean haveRights, Integer stazh, Car transport) { + super(fio, haveRights, stazh, transport); + } +} diff --git a/src/ru/skypro/transport/DriverC.java b/src/ru/skypro/transport/DriverC.java new file mode 100644 index 0000000..858bae5 --- /dev/null +++ b/src/ru/skypro/transport/DriverC.java @@ -0,0 +1,7 @@ +package ru.skypro.transport; + +public class DriverC extends Driver{ + public DriverC(String fio, Boolean haveRights, Integer stazh, Truck transport) { + super(fio, haveRights, stazh, transport); + } +} diff --git a/src/ru/skypro/transport/DriverD.java b/src/ru/skypro/transport/DriverD.java new file mode 100644 index 0000000..d3184fd --- /dev/null +++ b/src/ru/skypro/transport/DriverD.java @@ -0,0 +1,7 @@ +package ru.skypro.transport; + +public class DriverD extends Driver{ + public DriverD(String fio, Boolean haveRights, Integer stazh, Bus transport) { + super(fio, haveRights, stazh, transport); + } +} From a62f95ad723b5556e57bf300fbb0191d87fba62c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=92=D1=8F=D1=87=D0=B5=D1=81=D0=BB=D0=B0=D0=B2=20=D0=A2?= =?UTF-8?q?=D0=B8=D1=85=D0=BE=D0=BD=D0=BE=D0=B2?= Date: Sun, 23 Oct 2022 14:24:47 +0300 Subject: [PATCH 06/13] part 1 --- src/ru/skypro/Main.java | 14 +++++++++- src/ru/skypro/NewClass.java | 28 +++++++++++++++++++ .../exceptions/WrongLoginException.java | 11 ++++++++ .../exceptions/WrongPasswordException.java | 11 ++++++++ 4 files changed, 63 insertions(+), 1 deletion(-) create mode 100644 src/ru/skypro/NewClass.java create mode 100644 src/ru/skypro/exceptions/WrongLoginException.java create mode 100644 src/ru/skypro/exceptions/WrongPasswordException.java diff --git a/src/ru/skypro/Main.java b/src/ru/skypro/Main.java index 625884e..9da3a74 100644 --- a/src/ru/skypro/Main.java +++ b/src/ru/skypro/Main.java @@ -1,7 +1,19 @@ package ru.skypro; +import ru.skypro.exceptions.WrongLoginException; +import ru.skypro.exceptions.WrongPasswordException; + +import java.io.Console; + public class Main { public static void main(String[] args){ - + String login = "1234", pass="43251", cpass="4321"; + try { + NewClass.method(login,pass,cpass); + } catch (WrongLoginException | WrongPasswordException e) { + System.out.println(e); + } finally { + System.out.println("Good"); + } } } diff --git a/src/ru/skypro/NewClass.java b/src/ru/skypro/NewClass.java new file mode 100644 index 0000000..df05e90 --- /dev/null +++ b/src/ru/skypro/NewClass.java @@ -0,0 +1,28 @@ +package ru.skypro; + +import ru.skypro.exceptions.WrongLoginException; +import ru.skypro.exceptions.WrongPasswordException; + +import java.util.Objects; +import java.util.regex.Pattern; + +public class NewClass { + + private static Boolean check(String string) + { + return Pattern.matches("^[A-Za-z0-9_]+$",string) && string.length() <=20 && string.length()>0; + } + + public static Boolean method(String login,String password , String confirmPassword) throws WrongLoginException, WrongPasswordException { + if (!check(login)){ + throw new WrongLoginException("Login incorrect"); + } + if (!check(password) || !check(confirmPassword)) { + throw new WrongPasswordException("Password incorrect"); + } + if (!Objects.equals(password, confirmPassword)){ + throw new WrongPasswordException("Password incorrect"); + } + return true; + } +} diff --git a/src/ru/skypro/exceptions/WrongLoginException.java b/src/ru/skypro/exceptions/WrongLoginException.java new file mode 100644 index 0000000..4423fa3 --- /dev/null +++ b/src/ru/skypro/exceptions/WrongLoginException.java @@ -0,0 +1,11 @@ +package ru.skypro.exceptions; + +public class WrongLoginException extends Exception{ + + public WrongLoginException() { + } + + public WrongLoginException(String message) { + super(message); + } +} diff --git a/src/ru/skypro/exceptions/WrongPasswordException.java b/src/ru/skypro/exceptions/WrongPasswordException.java new file mode 100644 index 0000000..2eaf38e --- /dev/null +++ b/src/ru/skypro/exceptions/WrongPasswordException.java @@ -0,0 +1,11 @@ +package ru.skypro.exceptions; + +public class WrongPasswordException extends Exception{ + + public WrongPasswordException() { + } + + public WrongPasswordException(String message) { + super(message); + } +} From 5c4cad74715dcd8a4738a9fad35c97360d605c41 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=92=D1=8F=D1=87=D0=B5=D1=81=D0=BB=D0=B0=D0=B2=20=D0=A2?= =?UTF-8?q?=D0=B8=D1=85=D0=BE=D0=BD=D0=BE=D0=B2?= Date: Thu, 13 Oct 2022 19:16:19 +0300 Subject: [PATCH 07/13] part 1 --- src/ru/skypro/transport/BusType.java | 11 +++++++++++ src/ru/skypro/transport/CarBody.java | 15 +++++++++++++++ src/ru/skypro/transport/TruckBody.java | 5 +++++ 3 files changed, 31 insertions(+) create mode 100644 src/ru/skypro/transport/BusType.java create mode 100644 src/ru/skypro/transport/CarBody.java create mode 100644 src/ru/skypro/transport/TruckBody.java diff --git a/src/ru/skypro/transport/BusType.java b/src/ru/skypro/transport/BusType.java new file mode 100644 index 0000000..8d66bea --- /dev/null +++ b/src/ru/skypro/transport/BusType.java @@ -0,0 +1,11 @@ +package ru.skypro.transport; + +public enum BusType { + + особо_малая , + малая , + средняя, + большая, + особо_большая + + } diff --git a/src/ru/skypro/transport/CarBody.java b/src/ru/skypro/transport/CarBody.java new file mode 100644 index 0000000..e7738fb --- /dev/null +++ b/src/ru/skypro/transport/CarBody.java @@ -0,0 +1,15 @@ +package ru.skypro.transport; + +public enum CarBody { + + Седан, + Хетчбек, + Купе, + Универсал, + Внедорожник, + Кроссовер, + Пикап, + Фургон, + Минивэн + +} diff --git a/src/ru/skypro/transport/TruckBody.java b/src/ru/skypro/transport/TruckBody.java new file mode 100644 index 0000000..e1d2abc --- /dev/null +++ b/src/ru/skypro/transport/TruckBody.java @@ -0,0 +1,5 @@ +package ru.skypro.transport; + +public enum TruckBody { + N1,N2,N3 +} From ce60d2e4f1623078b1ee671037248e725f1d7949 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=92=D1=8F=D1=87=D0=B5=D1=81=D0=BB=D0=B0=D0=B2=20=D0=A2?= =?UTF-8?q?=D0=B8=D1=85=D0=BE=D0=BD=D0=BE=D0=B2?= Date: Thu, 13 Oct 2022 19:25:58 +0300 Subject: [PATCH 08/13] part 2 --- src/ru/skypro/Main.java | 33 ++++++++++++++++---------- src/ru/skypro/transport/Bus.java | 4 ++-- src/ru/skypro/transport/Car.java | 4 ++-- src/ru/skypro/transport/Transport.java | 9 ++++++- src/ru/skypro/transport/Truck.java | 4 ++-- 5 files changed, 34 insertions(+), 20 deletions(-) diff --git a/src/ru/skypro/Main.java b/src/ru/skypro/Main.java index 35e44ee..a520322 100644 --- a/src/ru/skypro/Main.java +++ b/src/ru/skypro/Main.java @@ -4,10 +4,10 @@ public class Main { public static void main(String[] args){ - Car car1 = new Car("brand1","car1",1.6); - Transport car2 = new Car("brand2","car2",2.0); - Bus bus1 = new Bus("brand1","bus1",3.0); - Truck truck1 = new Truck("brand2","truck1",4.0); + Car car1 = new Car("brand1","car1",1.6,CarBody.Седан); + Transport car2 = new Car("brand2","car2",2.0, CarBody.Фургон); + Bus bus1 = new Bus("brand1","bus1",3.0, BusType.малая); + Truck truck1 = new Truck("brand2","truck1",4.0, TruckBody.N2); car1.startMoving(); car2.startMoving(); bus1.startMoving(); @@ -25,14 +25,21 @@ public static void main(String[] args){ bus1.pitStop(); bus1.bestTime(); bus1.maxSpeed(); - Car car2c = (Car) car2; - Driver driver1 = new DriverB("F I O 1", true,5, car1); - Driver driver2 = new DriverB("F I O 2", false,0, car2c); - Driver driver3 = new DriverD("F I O 3", true,9, bus1); - Driver driver4 = new DriverC("F I O 4", true,7, truck1); - driver1.refill(); - driver2.refill(); - driver3.refill(); - driver4.refill(); + Driver driver1 = new Driver<>("F I O 1", true,5); + Driver driver2 = new Driver<>("F I O 2", false,0); + Driver driver3 = new Driver<>("F I O 3", true,9); + Driver driver4 = new Driver<>("F I O 4", true,7); + driver1.refill(car1); + driver2.refill(car2); + driver3.refill(bus1); + driver4.refill(truck1); + + System.out.println(car1.getType()); + System.out.println(car2.getType()); + System.out.println(truck1.getType()); + System.out.println(bus1.getType()); + Transport noname = new Car("as",null,null,null); + System.out.println(noname.getType()); + } } diff --git a/src/ru/skypro/transport/Bus.java b/src/ru/skypro/transport/Bus.java index 85dcf64..27c6ea0 100644 --- a/src/ru/skypro/transport/Bus.java +++ b/src/ru/skypro/transport/Bus.java @@ -2,8 +2,8 @@ public class Bus extends Transport implements Competitive { - public Bus(String brand, String model, Double engineVolume) { - super(brand, model, engineVolume); + public Bus(String brand, String model, Double engineVolume, BusType type) { + super(brand, model, engineVolume, type); } @Override diff --git a/src/ru/skypro/transport/Car.java b/src/ru/skypro/transport/Car.java index 88dc3f0..4823e59 100644 --- a/src/ru/skypro/transport/Car.java +++ b/src/ru/skypro/transport/Car.java @@ -1,8 +1,8 @@ package ru.skypro.transport; public class Car extends Transport implements Competitive{ - public Car(String brand, String model, Double engineVolume) { - super(brand, model, engineVolume); + public Car(String brand, String model, Double engineVolume, CarBody type) { + super(brand, model, engineVolume, type); } @Override diff --git a/src/ru/skypro/transport/Transport.java b/src/ru/skypro/transport/Transport.java index dcb6486..5adfb73 100644 --- a/src/ru/skypro/transport/Transport.java +++ b/src/ru/skypro/transport/Transport.java @@ -5,10 +5,13 @@ public abstract class Transport { private String model; private Double engineVolume; - public Transport(String brand, String model, Double engineVolume) { + private final Enum type; + + public Transport(String brand, String model, Double engineVolume, Enum type) { this.brand = brand == null || brand.equals("") ? "default" : brand; this.model = model == null || model.equals("") ? "default" : model; this.engineVolume = (engineVolume == null || engineVolume<0) ? 1.6 : engineVolume; + this.type = type; } public void startMoving(){ @@ -50,4 +53,8 @@ public Double getEngineVolume() { public void setEngineVolume(Double engineVolume) { this.engineVolume = engineVolume; } + + public String getType() { + return type == null ? "Данных недостаточно": type.name(); + } } diff --git a/src/ru/skypro/transport/Truck.java b/src/ru/skypro/transport/Truck.java index 84edcee..24395db 100644 --- a/src/ru/skypro/transport/Truck.java +++ b/src/ru/skypro/transport/Truck.java @@ -2,8 +2,8 @@ public class Truck extends Transport implements Competitive{ - public Truck(String brand, String model, Double engineVolume) { - super(brand, model, engineVolume); + public Truck(String brand, String model, Double engineVolume, TruckBody type) { + super(brand, model, engineVolume, type); } @Override From bb6115b31ba7fdaa00733d164cbd9fce953ad1e3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=92=D1=8F=D1=87=D0=B5=D1=81=D0=BB=D0=B0=D0=B2=20=D0=A2?= =?UTF-8?q?=D0=B8=D1=85=D0=BE=D0=BD=D0=BE=D0=B2?= Date: Sun, 23 Oct 2022 14:24:47 +0300 Subject: [PATCH 09/13] part 1 --- src/ru/skypro/Main.java | 50 +++++-------------- src/ru/skypro/NewClass.java | 28 +++++++++++ .../exceptions/WrongLoginException.java | 11 ++++ .../exceptions/WrongPasswordException.java | 11 ++++ 4 files changed, 62 insertions(+), 38 deletions(-) create mode 100644 src/ru/skypro/NewClass.java create mode 100644 src/ru/skypro/exceptions/WrongLoginException.java create mode 100644 src/ru/skypro/exceptions/WrongPasswordException.java diff --git a/src/ru/skypro/Main.java b/src/ru/skypro/Main.java index a520322..9da3a74 100644 --- a/src/ru/skypro/Main.java +++ b/src/ru/skypro/Main.java @@ -1,45 +1,19 @@ package ru.skypro; -import ru.skypro.transport.*; +import ru.skypro.exceptions.WrongLoginException; +import ru.skypro.exceptions.WrongPasswordException; + +import java.io.Console; public class Main { public static void main(String[] args){ - Car car1 = new Car("brand1","car1",1.6,CarBody.Седан); - Transport car2 = new Car("brand2","car2",2.0, CarBody.Фургон); - Bus bus1 = new Bus("brand1","bus1",3.0, BusType.малая); - Truck truck1 = new Truck("brand2","truck1",4.0, TruckBody.N2); - car1.startMoving(); - car2.startMoving(); - bus1.startMoving(); - truck1.startMoving(); - truck1.stopMoving(); - car1.stopMoving(); - bus1.stopMoving(); - car2.stopMoving(); - car1.pitStop(); - car1.bestTime(); - car1.maxSpeed(); - truck1.pitStop(); - truck1.bestTime(); - truck1.maxSpeed(); - bus1.pitStop(); - bus1.bestTime(); - bus1.maxSpeed(); - Driver driver1 = new Driver<>("F I O 1", true,5); - Driver driver2 = new Driver<>("F I O 2", false,0); - Driver driver3 = new Driver<>("F I O 3", true,9); - Driver driver4 = new Driver<>("F I O 4", true,7); - driver1.refill(car1); - driver2.refill(car2); - driver3.refill(bus1); - driver4.refill(truck1); - - System.out.println(car1.getType()); - System.out.println(car2.getType()); - System.out.println(truck1.getType()); - System.out.println(bus1.getType()); - Transport noname = new Car("as",null,null,null); - System.out.println(noname.getType()); - + String login = "1234", pass="43251", cpass="4321"; + try { + NewClass.method(login,pass,cpass); + } catch (WrongLoginException | WrongPasswordException e) { + System.out.println(e); + } finally { + System.out.println("Good"); + } } } diff --git a/src/ru/skypro/NewClass.java b/src/ru/skypro/NewClass.java new file mode 100644 index 0000000..df05e90 --- /dev/null +++ b/src/ru/skypro/NewClass.java @@ -0,0 +1,28 @@ +package ru.skypro; + +import ru.skypro.exceptions.WrongLoginException; +import ru.skypro.exceptions.WrongPasswordException; + +import java.util.Objects; +import java.util.regex.Pattern; + +public class NewClass { + + private static Boolean check(String string) + { + return Pattern.matches("^[A-Za-z0-9_]+$",string) && string.length() <=20 && string.length()>0; + } + + public static Boolean method(String login,String password , String confirmPassword) throws WrongLoginException, WrongPasswordException { + if (!check(login)){ + throw new WrongLoginException("Login incorrect"); + } + if (!check(password) || !check(confirmPassword)) { + throw new WrongPasswordException("Password incorrect"); + } + if (!Objects.equals(password, confirmPassword)){ + throw new WrongPasswordException("Password incorrect"); + } + return true; + } +} diff --git a/src/ru/skypro/exceptions/WrongLoginException.java b/src/ru/skypro/exceptions/WrongLoginException.java new file mode 100644 index 0000000..4423fa3 --- /dev/null +++ b/src/ru/skypro/exceptions/WrongLoginException.java @@ -0,0 +1,11 @@ +package ru.skypro.exceptions; + +public class WrongLoginException extends Exception{ + + public WrongLoginException() { + } + + public WrongLoginException(String message) { + super(message); + } +} diff --git a/src/ru/skypro/exceptions/WrongPasswordException.java b/src/ru/skypro/exceptions/WrongPasswordException.java new file mode 100644 index 0000000..2eaf38e --- /dev/null +++ b/src/ru/skypro/exceptions/WrongPasswordException.java @@ -0,0 +1,11 @@ +package ru.skypro.exceptions; + +public class WrongPasswordException extends Exception{ + + public WrongPasswordException() { + } + + public WrongPasswordException(String message) { + super(message); + } +} From 9bddef7df48bdcc92d116fafcbc628ad728ab384 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=92=D1=8F=D1=87=D0=B5=D1=81=D0=BB=D0=B0=D0=B2=20=D0=A2?= =?UTF-8?q?=D0=B8=D1=85=D0=BE=D0=BD=D0=BE=D0=B2?= Date: Sun, 23 Oct 2022 14:46:54 +0300 Subject: [PATCH 10/13] part 2 part --- src/ru/skypro/Main.java | 2 -- src/ru/skypro/exceptions/DiagnosticFailException.java | 7 +++++++ src/ru/skypro/exceptions/WrongRightsException.java | 8 ++++++++ src/ru/skypro/transport/Car.java | 9 +++++++++ src/ru/skypro/transport/Transport.java | 6 ++++++ src/ru/skypro/transport/Truck.java | 9 +++++++++ 6 files changed, 39 insertions(+), 2 deletions(-) create mode 100644 src/ru/skypro/exceptions/DiagnosticFailException.java create mode 100644 src/ru/skypro/exceptions/WrongRightsException.java diff --git a/src/ru/skypro/Main.java b/src/ru/skypro/Main.java index 9da3a74..55c2e9e 100644 --- a/src/ru/skypro/Main.java +++ b/src/ru/skypro/Main.java @@ -3,8 +3,6 @@ import ru.skypro.exceptions.WrongLoginException; import ru.skypro.exceptions.WrongPasswordException; -import java.io.Console; - public class Main { public static void main(String[] args){ String login = "1234", pass="43251", cpass="4321"; diff --git a/src/ru/skypro/exceptions/DiagnosticFailException.java b/src/ru/skypro/exceptions/DiagnosticFailException.java new file mode 100644 index 0000000..2d8bfea --- /dev/null +++ b/src/ru/skypro/exceptions/DiagnosticFailException.java @@ -0,0 +1,7 @@ +package ru.skypro.exceptions; + +public class DiagnosticFailException extends Exception{ + public DiagnosticFailException() { + super("программа должна выбросить ошибку."); + } +} diff --git a/src/ru/skypro/exceptions/WrongRightsException.java b/src/ru/skypro/exceptions/WrongRightsException.java new file mode 100644 index 0000000..abf3da0 --- /dev/null +++ b/src/ru/skypro/exceptions/WrongRightsException.java @@ -0,0 +1,8 @@ +package ru.skypro.exceptions; + +public class WrongRightsException extends Exception{ + + public WrongRightsException() { + super("Необходимо указать тип прав!"); + } +} diff --git a/src/ru/skypro/transport/Car.java b/src/ru/skypro/transport/Car.java index 4823e59..e3e643e 100644 --- a/src/ru/skypro/transport/Car.java +++ b/src/ru/skypro/transport/Car.java @@ -1,5 +1,7 @@ package ru.skypro.transport; +import ru.skypro.exceptions.DiagnosticFailException; + public class Car extends Transport implements Competitive{ public Car(String brand, String model, Double engineVolume, CarBody type) { super(brand, model, engineVolume, type); @@ -29,4 +31,11 @@ public void maxSpeed() { public void bestTime() { System.out.println("10.00"); } + + @Override + public void diagnostic() throws DiagnosticFailException { + if (this.getEngineVolume()<2){ + throw new DiagnosticFailException(); + } + } } diff --git a/src/ru/skypro/transport/Transport.java b/src/ru/skypro/transport/Transport.java index 5adfb73..03d6dba 100644 --- a/src/ru/skypro/transport/Transport.java +++ b/src/ru/skypro/transport/Transport.java @@ -1,5 +1,7 @@ package ru.skypro.transport; +import ru.skypro.exceptions.DiagnosticFailException; + public abstract class Transport { private String brand; private String model; @@ -54,6 +56,10 @@ public void setEngineVolume(Double engineVolume) { this.engineVolume = engineVolume; } + public void diagnostic() throws DiagnosticFailException { + System.out.println("Автобус … … … в диагностике не требуется"); + } + public String getType() { return type == null ? "Данных недостаточно": type.name(); } diff --git a/src/ru/skypro/transport/Truck.java b/src/ru/skypro/transport/Truck.java index 24395db..59411f1 100644 --- a/src/ru/skypro/transport/Truck.java +++ b/src/ru/skypro/transport/Truck.java @@ -1,5 +1,7 @@ package ru.skypro.transport; +import ru.skypro.exceptions.DiagnosticFailException; + public class Truck extends Transport implements Competitive{ public Truck(String brand, String model, Double engineVolume, TruckBody type) { @@ -30,4 +32,11 @@ public void maxSpeed() { public void bestTime() { System.out.println("6.00"); } + + @Override + public void diagnostic() throws DiagnosticFailException { + if (this.getEngineVolume()<2){ + throw new DiagnosticFailException(); + } + } } From 435aac63c82df3eb336c4d0bbac0d43be1d961a4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=92=D1=8F=D1=87=D0=B5=D1=81=D0=BB=D0=B0=D0=B2=20=D0=A2?= =?UTF-8?q?=D0=B8=D1=85=D0=BE=D0=BD=D0=BE=D0=B2?= Date: Sun, 23 Oct 2022 14:52:31 +0300 Subject: [PATCH 11/13] part 2 --- src/ru/skypro/Main.java | 11 ++++++++++- src/ru/skypro/transport/Driver.java | 10 ++++++++-- src/ru/skypro/transport/DriverB.java | 4 +++- src/ru/skypro/transport/DriverC.java | 4 +++- src/ru/skypro/transport/DriverD.java | 4 +++- 5 files changed, 27 insertions(+), 6 deletions(-) diff --git a/src/ru/skypro/Main.java b/src/ru/skypro/Main.java index 55c2e9e..2e23087 100644 --- a/src/ru/skypro/Main.java +++ b/src/ru/skypro/Main.java @@ -2,16 +2,25 @@ import ru.skypro.exceptions.WrongLoginException; import ru.skypro.exceptions.WrongPasswordException; +import ru.skypro.exceptions.WrongRightsException; +import ru.skypro.transport.Driver; +import ru.skypro.transport.DriverB; public class Main { public static void main(String[] args){ String login = "1234", pass="43251", cpass="4321"; try { NewClass.method(login,pass,cpass); + System.out.println("Good"); } catch (WrongLoginException | WrongPasswordException e) { System.out.println(e); - } finally { + } + try { + Driver failDriver = new DriverB("asd",true,22,null); System.out.println("Good"); + } catch (WrongRightsException e){ + System.out.println(e); } + } } diff --git a/src/ru/skypro/transport/Driver.java b/src/ru/skypro/transport/Driver.java index f900c7d..b316770 100644 --- a/src/ru/skypro/transport/Driver.java +++ b/src/ru/skypro/transport/Driver.java @@ -1,5 +1,7 @@ package ru.skypro.transport; +import ru.skypro.exceptions.WrongRightsException; + public abstract class Driver{ private final Transport transport; @@ -7,11 +9,15 @@ public abstract class Driver{ private Boolean haveRights; private Integer stazh; - public Driver(String fio, Boolean haveRights, Integer stazh, Transport transport) { + public Driver(String fio, Boolean haveRights, Integer stazh, Transport transport) throws WrongRightsException { this.fio = fio; this.haveRights = haveRights; this.stazh = stazh; - this.transport = transport; + if (transport == null) { + throw new WrongRightsException(); + } else { + this.transport = transport; + }; } public void startMoving(){ diff --git a/src/ru/skypro/transport/DriverB.java b/src/ru/skypro/transport/DriverB.java index 41aca26..2b3b583 100644 --- a/src/ru/skypro/transport/DriverB.java +++ b/src/ru/skypro/transport/DriverB.java @@ -1,7 +1,9 @@ package ru.skypro.transport; +import ru.skypro.exceptions.WrongRightsException; + public class DriverB extends Driver{ - public DriverB(String fio, Boolean haveRights, Integer stazh, Car transport) { + public DriverB(String fio, Boolean haveRights, Integer stazh, Car transport) throws WrongRightsException { super(fio, haveRights, stazh, transport); } } diff --git a/src/ru/skypro/transport/DriverC.java b/src/ru/skypro/transport/DriverC.java index 858bae5..9ced660 100644 --- a/src/ru/skypro/transport/DriverC.java +++ b/src/ru/skypro/transport/DriverC.java @@ -1,7 +1,9 @@ package ru.skypro.transport; +import ru.skypro.exceptions.WrongRightsException; + public class DriverC extends Driver{ - public DriverC(String fio, Boolean haveRights, Integer stazh, Truck transport) { + public DriverC(String fio, Boolean haveRights, Integer stazh, Truck transport) throws WrongRightsException { super(fio, haveRights, stazh, transport); } } diff --git a/src/ru/skypro/transport/DriverD.java b/src/ru/skypro/transport/DriverD.java index d3184fd..5d8bf8e 100644 --- a/src/ru/skypro/transport/DriverD.java +++ b/src/ru/skypro/transport/DriverD.java @@ -1,7 +1,9 @@ package ru.skypro.transport; +import ru.skypro.exceptions.WrongRightsException; + public class DriverD extends Driver{ - public DriverD(String fio, Boolean haveRights, Integer stazh, Bus transport) { + public DriverD(String fio, Boolean haveRights, Integer stazh, Bus transport) throws WrongRightsException { super(fio, haveRights, stazh, transport); } } From 10d32af92c7d3a6d62a471aeeb3efddd6831d66e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=92=D1=8F=D1=87=D0=B5=D1=81=D0=BB=D0=B0=D0=B2=20=D0=A2?= =?UTF-8?q?=D0=B8=D1=85=D0=BE=D0=BD=D0=BE=D0=B2?= Date: Sun, 23 Oct 2022 14:56:33 +0300 Subject: [PATCH 12/13] part 2 --- src/ru/skypro/Main.java | 12 ++++++++++++ src/ru/skypro/transport/Car.java | 6 ++---- src/ru/skypro/transport/Transport.java | 3 ++- src/ru/skypro/transport/Truck.java | 6 ++---- 4 files changed, 18 insertions(+), 9 deletions(-) diff --git a/src/ru/skypro/Main.java b/src/ru/skypro/Main.java index 2e23087..e9455b6 100644 --- a/src/ru/skypro/Main.java +++ b/src/ru/skypro/Main.java @@ -1,8 +1,11 @@ package ru.skypro; +import ru.skypro.exceptions.DiagnosticFailException; import ru.skypro.exceptions.WrongLoginException; import ru.skypro.exceptions.WrongPasswordException; import ru.skypro.exceptions.WrongRightsException; +import ru.skypro.transport.Car; +import ru.skypro.transport.CarBody; import ru.skypro.transport.Driver; import ru.skypro.transport.DriverB; @@ -21,6 +24,15 @@ public static void main(String[] args){ } catch (WrongRightsException e){ System.out.println(e); } + Car car = new Car("asd","asd",1.3, CarBody.Кроссовер); + if (!car.diagnostic()){ + try { + throw new DiagnosticFailException(); + } catch (DiagnosticFailException e) { + System.out.println(e); + } + } + } } diff --git a/src/ru/skypro/transport/Car.java b/src/ru/skypro/transport/Car.java index e3e643e..b7f3510 100644 --- a/src/ru/skypro/transport/Car.java +++ b/src/ru/skypro/transport/Car.java @@ -33,9 +33,7 @@ public void bestTime() { } @Override - public void diagnostic() throws DiagnosticFailException { - if (this.getEngineVolume()<2){ - throw new DiagnosticFailException(); - } + public Boolean diagnostic() { + return this.getEngineVolume() >= 2; } } diff --git a/src/ru/skypro/transport/Transport.java b/src/ru/skypro/transport/Transport.java index 03d6dba..59f1a02 100644 --- a/src/ru/skypro/transport/Transport.java +++ b/src/ru/skypro/transport/Transport.java @@ -56,8 +56,9 @@ public void setEngineVolume(Double engineVolume) { this.engineVolume = engineVolume; } - public void diagnostic() throws DiagnosticFailException { + public Boolean diagnostic() { System.out.println("Автобус … … … в диагностике не требуется"); + return true; } public String getType() { diff --git a/src/ru/skypro/transport/Truck.java b/src/ru/skypro/transport/Truck.java index 59411f1..ebbc46c 100644 --- a/src/ru/skypro/transport/Truck.java +++ b/src/ru/skypro/transport/Truck.java @@ -34,9 +34,7 @@ public void bestTime() { } @Override - public void diagnostic() throws DiagnosticFailException { - if (this.getEngineVolume()<2){ - throw new DiagnosticFailException(); - } + public Boolean diagnostic() { + return this.getEngineVolume() >= 2; } } From 6cfafe8dde2348844e16b124fbb15665cae85f6f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=92=D1=8F=D1=87=D0=B5=D1=81=D0=BB=D0=B0=D0=B2=20=D0=A2?= =?UTF-8?q?=D0=B8=D1=85=D0=BE=D0=BD=D0=BE=D0=B2?= Date: Sun, 23 Oct 2022 14:57:56 +0300 Subject: [PATCH 13/13] part 2 --- src/ru/skypro/{NewClass.java => Data.java} | 2 +- src/ru/skypro/Main.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) rename src/ru/skypro/{NewClass.java => Data.java} (97%) diff --git a/src/ru/skypro/NewClass.java b/src/ru/skypro/Data.java similarity index 97% rename from src/ru/skypro/NewClass.java rename to src/ru/skypro/Data.java index df05e90..a6bb3d8 100644 --- a/src/ru/skypro/NewClass.java +++ b/src/ru/skypro/Data.java @@ -6,7 +6,7 @@ import java.util.Objects; import java.util.regex.Pattern; -public class NewClass { +public class Data { private static Boolean check(String string) { diff --git a/src/ru/skypro/Main.java b/src/ru/skypro/Main.java index e9455b6..119a26f 100644 --- a/src/ru/skypro/Main.java +++ b/src/ru/skypro/Main.java @@ -13,7 +13,7 @@ public class Main { public static void main(String[] args){ String login = "1234", pass="43251", cpass="4321"; try { - NewClass.method(login,pass,cpass); + Data.method(login,pass,cpass); System.out.println("Good"); } catch (WrongLoginException | WrongPasswordException e) { System.out.println(e);