//Если пользователь ввел пустую строку вместо имени, то программа должна вывести данные на экран и завершиться.
какие данные, не понятно...
1. ввод данных есть ,
2. проверка на null с обрывом цикла - есть,
3. добавление в список CATS объекта с параметрами (String, int, int, int) по ссылке cat - есть
4. вывод списка CATS через вызов printList() - есть
вопрос такой про toString()
тут его намеренно не вызывают, а если бы вызывали, то где?
package com.javarush.task.task07.task0726;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
public class Solution {
public final static ArrayList<Cat> CATS = new ArrayList<>();
public static void main(String[] args) throws IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));//1
while (true) {
String name = reader.readLine(); //1
int age = Integer.parseInt(reader.readLine()); //1
int weight = Integer.parseInt(reader.readLine()); //1
int tailLength = Integer.parseInt(reader.readLine()); //1
if (name.equals(null) || name.isEmpty()) { // проверка на name == null
break;
}
Cat cat = new Cat(name, age, weight, tailLength); //если имя не равно == null, добавим объект Cat с параметрами
CATS.add(cat); // добавл в список CATS
}
printList();
}
public static void printList() {
for (int i = 0; i < CATS.size(); i++) {
System.out.println(CATS.get(i));
}
}
public static class Cat {
private String name;
private int age;
private int weight;
private int tailLength;
public Cat(String name, int age, int weight, int tailLength) { // constructor
this.name = name; // присваиваем в конструктор
this.age = age;
this.weight = weight;
this.tailLength = tailLength;
}
@Override //переопределение toString
public String toString() {
return "Cat's name: " + name + ", age: " + age + ", weight: " + weight + ", tail: " + tailLength;
//возвращаем (return) toString
}
}
}