Друзья, нужна помощь долго разбирался в классах и объектах (уж тяжко тема далась) и когда вроде бы костылями надумал решение для задачки, оказалось, что она не проходит валидацию по одному из условий, а именно "Строка про папу (третья) должна соответствовать условию."
Ниже весь код, компилятор говорит следующее:
ded
babka
papa
mama
son
doca
The cat's name is ded, no mother, no father
The cat's name is babka, no mother, no father
The cat's name is papa, no mother, father is ded
The cat's name is mama, mother is babka, no father
The cat's name is son, mother is mama, father is papa
The cat's name is doca, mother is mama, father is papa
Буду рад всем подсказкам)
package com.javarush.task.task06.task0621;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
/*
Родственные связи кошек
*/
public class Solution {
public static void main(String[] args) throws IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String dedName = reader.readLine();
Cat ded = new Cat(dedName);
String grannyName = reader.readLine();
Cat granny = new Cat(grannyName);
String papaName = reader.readLine();
Cat papa = new Cat(papaName, ded);
String mamaName = reader.readLine();
Cat mama = new Cat(mamaName, granny);
String sonName = reader.readLine();
Cat son = new Cat(sonName, mama, papa);
String daughterName = reader.readLine();
Cat daughter = new Cat(daughterName, mama, papa);
System.out.println(ded);
System.out.println(granny);
System.out.println(papa);
Cat.sex = 1;
System.out.println(mama);
System.out.println(son);
System.out.println(daughter);
}
public static class Cat {
static int sex = 0;
private String name;
private Cat parent;
private Cat mama;
private Cat papa;
Cat(String name) {
this.name = name;
}
Cat(String name, Cat parent) {
this.name = name;
this.parent = parent;
}
Cat(String name, Cat mama, Cat papa) {
this.name = name;
this.mama = mama;
this.papa = papa;
}
@Override
public String toString() {
if (mama != null)
return "The cat's name is " + name + ", mother is " + mama.name + ", father is " + papa.name;
else if (parent == null)
return "The cat's name is " + name + ", no mother" + ", no father";
else if (Cat.sex == 0)
return "The cat's name is " + name + ", no mother" + ", father is " + parent.name;
else
return "The cat's name is " + name + ", mother is " + parent.name + ", no father";
}
}
}