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
1 change: 0 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
# Compiled class file
*.class

# Log file
*.log
Expand Down
14 changes: 14 additions & 0 deletions FamilyOOP/Animal.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
package FamilyOOP;

/**Это абстрактный класс животные*/
abstract class Animal {
protected String type;
protected int height;
protected int weight;
protected String wool;

/**Метод описывает какие звуки издает животное*/
abstract void voice();
/**С помощью метода описывается специфичное для каждого вида движение животного*/
abstract void gogo();
}
56 changes: 56 additions & 0 deletions FamilyOOP/Cat.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
package FamilyOOP;

import java.util.Iterator;

/**Класс кот, описывает конкретный вид животного*/
class Cat extends Animal implements Iterator<String>, Comparable<Cat> {
@Override
void voice() {
System.out.println("мяу");
}
@Override
void gogo() {
System.out.println("Идти");
}

Cat(String type, int weight, String wool){
this.type = type;
this.weight = weight;
this.wool = wool;
}
Cat(Object n1, Object n2) {

}

int index;

@Override
public boolean hasNext() {
return index++ < 3;
}

/**Метод, возвращающий по каждому отдельному индексу определенное поле класса.*/
@Override
public String next() {
switch (index) {
case 1 -> {
return String.format("Порода: %s", type);
}
case 2 -> {
return String.format("Котик весит: %s кг", weight);
}
case 3 -> {
return String.format("Шерсть у котика: %s", wool);
}
}
return null;

}
/**Метод для сравнения двух классов по полю вес*/
@Override
public int compareTo(Cat o) {
if (this.weight > o.weight) return 1;
else if (this.weight < o.weight) return -1;
else return 0;
}
}
44 changes: 44 additions & 0 deletions FamilyOOP/Children.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
package FamilyOOP;

class Children extends Human implements IPetOwner {
private final String name;

Children(String name) {
this.name = name;
}

@Override
public String toString() {
return this.name;
}

int hunger() {
return (int)(Math.random() * 9);
}
void goEat() {
System.out.println("Ест...");
int food = (int)(Math.random() * 3);
int hunger = hunger() - food;
int trueLevelFood = 5;
if (hunger == trueLevelFood)
System.out.println("Ребенок больше не голоден");
else if (hunger < trueLevelFood) {
goEat();
}
else {
System.out.println("Ребенок переел");
}
}
@Override
int go(int start) {
int step = (int)(Math.random() * 7);
int finish = start + step;
return finish;
}

@Override
public void call() {
System.out.println("Агу Агу");
}
}

20 changes: 20 additions & 0 deletions FamilyOOP/Family.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
package FamilyOOP;

import java.util.ArrayList;
import java.util.List;

class Family<T> {
List<T> family;

Family() {
family = new ArrayList<>();
}
void add(T name) {
family.add(name);
}

@Override
public String toString() {
return String.format("%s", family);
}
}
13 changes: 13 additions & 0 deletions FamilyOOP/Grandma.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
package FamilyOOP;

class Grandma extends Sister {
String name;
Grandma(String name) {
this.name = name;
}

@Override
public String toString() {
return String.format("%s", name);
}
}
35 changes: 35 additions & 0 deletions FamilyOOP/Human.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
package FamilyOOP;

/**Абстрактный класс человек*/
abstract class Human {
private int age;
private String gender;
private String familyStatus;
private String havingChildren;
private String colorHair;

public int getAge() {
return age;
}

public String getFamilyStatus() {
return familyStatus;
}

public String getHavingChildren() {
return havingChildren;
}

abstract int go(int start);

/**
* Метод, показывающий семейный стутус каждого члена семьи, а именно выводит семейное положение, наличие детей и дополнительно - возраст
*/
void showFamilyStatus() {
int age = getAge();
String status = getFamilyStatus();
String ch = getHavingChildren();
System.out.printf("Человек в возрасте: %d лет. Семейное положение: %s. Дети: %s", age, status, ch);
}

}
6 changes: 6 additions & 0 deletions FamilyOOP/IMother.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
package FamilyOOP;

public interface IMother {
void cleanHome(int time);
void bringUpChildren();
}
5 changes: 5 additions & 0 deletions FamilyOOP/IPetOwner.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
package FamilyOOP;

public interface IPetOwner {
void call();
}
58 changes: 58 additions & 0 deletions FamilyOOP/Program.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
package FamilyOOP;

import java.util.ArrayList;

public class Program {

public static void main(String[] args) {
Children ch1 = new Children("George");
Children ch2 = new Children("Ben1");
Children ch3 = new Children("Ben2");
Children ch4 = new Children("Ben3");
Grandma grandMa = new Grandma("Dolly");


// System.out.println(ch1.go(2));
// ch1.call();
// ch1.goEat();

Family<Human> family1 = new Family<>();
family1.add(ch1);
family1.add(ch2);
family1.add(ch3);
family1.add(ch4);
family1.add(grandMa);
System.out.println(family1);




// Cat cat1 = new Cat("Вислоухий", 2, "темная");
// Cat cat2 = new Cat("Вислоухий", 6, "темная");
////
// Iterator<String> components = cat1;
// while (components.hasNext()) {System.out.println(cat1.next());}

// List<Cat> cats = new ArrayList<>();
// for (int i = 0; i < 3; i++) {
// cats.add(new Cat("id: " + i, "вес: "+ i * 10)); // пока не работает
// }
//
// System.out.println(cats);
//// Collections.sort(cats);
// cats.sort(Comparator.comparingInt(cat -> cat.weight));
// System.out.println(cats);
//
// Grandma Meg = new Grandma();
// System.out.println(Meg.go(6));









}
}
38 changes: 38 additions & 0 deletions FamilyOOP/Sister.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
package FamilyOOP;

class Sister extends Human implements IMother, IPetOwner {
private String SisAndBro;
public String getSisAndBro() {return SisAndBro;}

@Override
int go(int steps) {
int start = 0;
int move = start + steps;
return move;
}
@Override
void showFamilyStatus() {
int age = getAge();
String status = getFamilyStatus();
String ch = getHavingChildren();
String sandb = getSisAndBro();
System.out.printf("Человек в возрасте: %d лет. Семейное положение: %s. Дети: %s. Братья/Сестры : %s", age, status, ch, sandb);
}
@Override
public void cleanHome(int effort) {
if (effort < 100 && effort > 50) {System.out.println("Идеальная уборка!");}
else if (effort < 50 && effort > 20) {System.out.println("Хорошо постарались");}
else if (effort < 20 && effort > 0) {System.out.println("Плохо!");}
else System.out.println("Какая-то ошибка...");
}
@Override
public void bringUpChildren() {
System.out.println("Не балуйся!");
}

@Override
public void call() {
System.out.println("Иди сюда!");
}

}
Loading