Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 23 additions & 0 deletions src/HW6/Animal.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
package HW6;

abstract class Animal {
protected static int animalCounter;
protected String name;

public Animal(String name){
animalCounter++;
this.name = name;
}

public final int getAnimalCounter() {
return animalCounter;
}

public void info(){
System.out.println("Animal name is " + name);
}

public abstract void swim(int swimDistance);
public abstract void run(int runDistance);

}
45 changes: 45 additions & 0 deletions src/HW6/Cat.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
package HW6;

public class Cat extends Animal{
protected int swimDistance = 0;
protected int runDistance = 200;

public Cat(String name){
super(name);
}

public void pinfo(){
System.out.println("Cat's max swim distance is " + swimDistance + " meters");
System.out.println("Cat's max run distance is " + runDistance + " meters");
}

public void info(boolean idCountFlag){
if (idCountFlag == true) {
System.out.println("Cat's name is " + name);
System.out.println("Current amount number of animals are " + super.getAnimalCounter());
}
else {
System.out.println("Cat's name is " + name);
}
}

@Override
public void swim(int swimDistance) {
if (swimDistance <= this.swimDistance){
System.out.println("Cat " + super.name + " swam exactly " + swimDistance + " meters");
}
else {
System.out.println("Cat " + super.name + " is drowned!");
}
}

@Override
public void run(int runDistance) {
if (runDistance <= this.runDistance){
System.out.println("Cat " + super.name + " run exactly " + runDistance + " meters");
}
else {
System.out.println("Cat " + super.name + " is exhausted!");
}
}
}
45 changes: 45 additions & 0 deletions src/HW6/Dog.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
package HW6;

public class Dog extends Animal {
protected int swimDistance = 10;
protected int runDistance = 500;

public Dog(String name){
super(name);
}

public void pinfo(){
System.out.println("Dog's max swim distance is " + swimDistance + " meters");
System.out.println("Dog's max run distance is " + runDistance + " meters");
}

public void info(boolean idCountFlag){
if (idCountFlag == true) {
System.out.println("Dog's name is " + name);
System.out.println("Current amount number of animals are " + super.getAnimalCounter());
}
else {
System.out.println("Dog's name is " + name);
}
};

@Override
public void swim(int swimDistance) {
if (swimDistance <= this.swimDistance){
System.out.println("Dog " + super.name + " swam exactly " + swimDistance + " meters");
}
else {
System.out.println("Dog " + super.name + " is drowned!");
}
}

@Override
public void run(int runDistance) {
if (runDistance <= this.runDistance){
System.out.println("Dog " + super.name + " run exactly " + runDistance + " meters");
}
else {
System.out.println("Dog " + super.name + " is exhausted!");
}
}
}
47 changes: 45 additions & 2 deletions src/HW6/Main.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,49 @@
public class Main {

public static void main(String[] args) {
// write your code here
Cat catA = new Cat("Phoebe");
Cat catB = new Cat("Maks");
Cat catC = new Cat("Tom");

Dog [] dogs = new Dog [] {
new Dog ("Chapa"),
new Dog ("Reks"),
new Dog ("Zver"),
new Dog ("Grey"),
};

System.out.println("======== INFO ========");
catA.info();
catB.info(false);
catC.info(true);
dogs[0].info(false);
for (int i = 2; i < dogs.length; i++){
dogs[i].info(false);
}
dogs[1].info(true);

System.out.println("======== Parameters info ========");
catA.pinfo();
dogs[0].pinfo();


System.out.println("======== Let's swim ========");
catA.swim(0);
catB.swim(5);
catC.swim(10);

for (int i = 0; i < dogs.length; i++){
dogs[i].swim(i*5);
}

System.out.println("======== Let's run ========");
catA.run(100);
catB.run(250);
catC.run(300);

for (int i = 0; i < dogs.length; i++){
dogs[i].run(i*200);
}

}
}
}