diff --git a/src/java_core/lesson6/homework/Animal.java b/src/java_core/lesson6/homework/Animal.java new file mode 100644 index 0000000..01ed265 --- /dev/null +++ b/src/java_core/lesson6/homework/Animal.java @@ -0,0 +1,69 @@ +package java_core.lesson6.homework; + +import java_core.lesson6.homework.Animals.Cat; + +public class Animal { + + protected String name; + protected Double jumpLimit; + protected int swimLimit; + protected int runLimit; + + public Animal(String name, Double jumpLimit, int swimLimit, int runLimit) { + this.name = name; + this.jumpLimit = jumpLimit; + this.swimLimit = swimLimit; + this.runLimit = runLimit; + } + + public void run(int runDistance) { + System.out.print(this.name + " "); + if (runDistance <= runLimit) { + System.out.println("run: true" + "(limit is " + this.runLimit + " && command is " + runDistance + ")"); + runLimit -= runDistance; + + } else System.out.println("run: false" + "(limit is " + this.runLimit + " but command is " + runDistance + ")"); + } + + public void swim(int swimDistance) { + System.out.print(this.name + " "); + if (swimDistance <= swimLimit) { + System.out.println("swim: true" + "(limit is " + this.swimLimit + " && command is " + swimDistance + ")"); + swimLimit -= swimDistance; + } else + System.out.println("swim: false" + "(limit is " + this.swimLimit + " but command is " + swimDistance + ")"); + } + + public void jump(Double jumpDistance) { + System.out.print(this.name + " "); + if (jumpDistance <= jumpLimit) { + System.out.println("jump: true" + "(limit is " + this.jumpLimit + " && command is " + jumpDistance + ")"); + jumpLimit -= jumpDistance; + } else + System.out.println("jump: false" + "(limit is " + this.jumpLimit + " but command is " + jumpDistance + ")"); + + } + + public void rest(int minutes) { + System.out.println(); + System.out.println("ZZZzzz " + this.name + " is rested for: " + minutes); + System.out.println(); + this.jumpLimit += minutes; + this.runLimit += minutes * 2; + if (this.getClass().equals(Cat.class)) this.swimLimit = 0; //как вариант. не стал переопределять в классе + else this.swimLimit += minutes; + } + + public void printLimits() { + System.out.println(); + System.out.println(this.name + " JumpLimit is: " + this.jumpLimit); + System.out.println(this.name + " SwimLimit is: " + this.swimLimit); + System.out.println(this.name + " RunLimit is: " + this.runLimit); + System.out.println(); + } + + public void printResult() { + + } + +} diff --git a/src/java_core/lesson6/homework/Animals/Cat.java b/src/java_core/lesson6/homework/Animals/Cat.java new file mode 100644 index 0000000..c2f64d2 --- /dev/null +++ b/src/java_core/lesson6/homework/Animals/Cat.java @@ -0,0 +1,11 @@ +package java_core.lesson6.homework.Animals; + +import java_core.lesson6.homework.Animal; + +public class Cat extends Animal { + + public Cat(String name, Double jumpLimit, int swimLimit, int runLimit) { + super(name, jumpLimit, swimLimit, runLimit); + } + +} diff --git a/src/java_core/lesson6/homework/Animals/Dog.java b/src/java_core/lesson6/homework/Animals/Dog.java new file mode 100644 index 0000000..e6ff35d --- /dev/null +++ b/src/java_core/lesson6/homework/Animals/Dog.java @@ -0,0 +1,20 @@ +package java_core.lesson6.homework.Animals; + +import java_core.lesson6.homework.Animal; + +public class Dog extends Animal { + + public Dog(String name, Double jumpLimit, int swimLimit, int runLimit) { + super(name, jumpLimit, swimLimit, runLimit); + } + + @Override + public void rest(int minutes) { + System.out.println("ZZZzzz " + this.name + " is rested for: " + minutes); + this.jumpLimit += minutes; + this.runLimit += minutes * 3; + this.swimLimit += minutes; + + + } +} diff --git a/src/java_core/lesson6/homework/Animals/Horse.java b/src/java_core/lesson6/homework/Animals/Horse.java new file mode 100644 index 0000000..75112ad --- /dev/null +++ b/src/java_core/lesson6/homework/Animals/Horse.java @@ -0,0 +1,13 @@ +package java_core.lesson6.homework.Animals; + +import java_core.lesson6.homework.Animal; + +public class Horse extends Animal { + + + public Horse(String name, Double jumpLimit, int swimLimit, int runLimit) { + super(name, jumpLimit, swimLimit, runLimit); + } + + +} diff --git a/src/java_core/lesson6/homework/Animals/Hound.java b/src/java_core/lesson6/homework/Animals/Hound.java new file mode 100644 index 0000000..1efa7bc --- /dev/null +++ b/src/java_core/lesson6/homework/Animals/Hound.java @@ -0,0 +1,17 @@ +package java_core.lesson6.homework.Animals; + +public class Hound extends Dog { + public Hound(String name, Double jumpLimit, int swimLimit, int runLimit) { + super(name, jumpLimit, swimLimit, runLimit); + } + + @Override + public void rest(int minutes) { + System.out.println("ZZZzzz " + this.name + " is rested for: " + minutes); + this.jumpLimit += minutes; + this.runLimit += minutes * 5; + this.swimLimit += minutes; + + + } +} diff --git a/src/java_core/lesson6/homework/Main.java b/src/java_core/lesson6/homework/Main.java new file mode 100644 index 0000000..6b0d08c --- /dev/null +++ b/src/java_core/lesson6/homework/Main.java @@ -0,0 +1,45 @@ +package java_core.lesson6.homework; + +import java_core.lesson6.homework.Animals.Cat; +import java_core.lesson6.homework.Animals.Dog; +import java_core.lesson6.homework.Animals.Hound; + +public class Main { + + + public static void main(String[] args) { + + Animal cat = new Cat("Kitty", 0.5, 0, 200); + Animal cat2 = new Cat("Suzi", 2., 0, 300); + Animal dog = new Dog("Bobik", 0.5, 10, 500); + Animal hound = new Hound("Pushok", 1., 5, 500); + + cat.jump(0.2); + cat.jump(0.2); + cat.printLimits(); + cat.rest(20); + cat.printLimits(); + cat.swim(2); + cat.jump(0.2); + + cat2.run(101); + cat2.run(100); + cat2.rest(5); + cat2.run(100); + + dog.run(200); + dog.run(200); + dog.printLimits(); + dog.rest(20); + dog.printLimits(); + dog.swim(20); + dog.swim(20); + dog.swim(20); + dog.run(200); + + hound.printLimits(); + hound.rest(30); + hound.printLimits(); + } + +}