не могу разобраться как в статических методах правильнее описать условие.
3 и 4 условие if он сравнивает его объекты и думает что father и mother cat это одно и тоже но как конкретнее описать эти объекты. Так как все остальные условие выполняются верно но и содержания у них одни и те же. А здесь содержание разное так mother это дочь catGrandmother а father это сын catGrandfather. По задаче они обязательно все должны быть статическими.
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String grandfatherName = reader.readLine();
Cat catGrandfather = new Cat(grandfatherName);
String grandmotherName = reader.readLine();
Cat catGrandmother = new Cat(grandmotherName);
String fatherName = reader.readLine();
Cat catFather = new Cat(fatherName, catGrandfather);
String motherName = reader.readLine();
Cat catMother = new Cat(motherName, catGrandmother);
String sonName = reader.readLine();
Cat catSon = new Cat(sonName, catMother, catFather);
String daughterName = reader.readLine();
Cat catDaughter = new Cat(daughterName, catMother, catFather);
System.out.println(catGrandfather);
System.out.println(catGrandmother);
System.out.println(catFather);
System.out.println(catMother);
System.out.println(catSon);
System.out.println(catDaughter);
}
public static class Cat {
private String name;
private Cat parent;
private Cat parent2;
Cat(String name) {
this.name = name;
}
Cat(String name, Cat parent) {
this.name = name;
this.parent = parent;
}
Cat(String name, Cat parent, Cat parent2){
this.name = name;
this.parent = parent;
this.parent2 = parent2;
}
@Override
public String toString() {
if (parent == null)
return "Cat name is " + name + ", no mother, no father ";
else if (parent2 == null)
return "Cat name is " + name + ", no mother, father is " + parent.name;
else if (parent == null && parent2 == null)
return "Cat name is " + name + ", mother is " + parent.name +", no father";
else if (parent2 == null)
return "Cat name is " + name + ", mother is " + parent.name +", no father";
else
return "Cat name is " + name + ", mother is " + parent.name +", father is "+parent2.name;
}
}
}
Статика тут не причем. У вас неправильно записано условие.
Теоретически это должно быть правильным:
if (parent == null && parent2 == null)
return "Cat name is " + name + ", no mother, no father ";
else if (parent2 == null)
return "Cat name is " + name + ", no mother, father is " + parent.name;
else if(parent == null)
return "Cat name is " + name + ", mother is " + parent2.name +", no father";
else
return "Cat name is " + name + ", mother is " + parent.name +", father is "+parent2.name;
Продвижение своими сайтами как стратегия роста и независимости