Задачу я решил, вот условие, ниже будет решение и вопрос:
Создать класс Cat (кот) с пятью инициализаторами:
- Имя,
- Имя, вес, возраст
- Имя, возраст (вес стандартный)
- вес, цвет (имя, адрес и возраст неизвестны, это бездомный кот)
- вес, цвет, адрес (чужой домашний кот)
Задача инициализатора - сделать объект валидным.
Например, если вес неизвестен, то нужно указать какой-нибудь средний вес.
Кот не может ничего не весить.
То же касается возраста и цвета.
А вот имени может и не быть (null).
То же касается адреса: null.
Требования:
1. У класса Cat должна быть переменная name с типом String.
2. У класса Cat должна быть переменная age с типом int.
3. У класса Cat должна быть переменная weight с типом int.
4. У класса Cat должна быть переменная address с типом String.
5. У класса Cat должна быть переменная color с типом String.
6. У класса должен быть метод initialize, принимающий в качестве параметра имя, но инициализирующий все переменные класса, кроме адреса.
7. У класса должен быть метод initialize, принимающий в качестве параметров имя, вес, возраст и инициализирующий все переменные класса, кроме адреса.
8. У класса должен быть метод initialize, принимающий в качестве параметров имя, возраст и инициализирующий все переменные класса, кроме адреса.
9. У класса должен быть метод initialize, принимающий в качестве параметров вес, цвет и инициализирующий все переменные класса, кроме имени и адреса.
10. У класса должен быть метод initialize, принимающий в качестве параметров вес, цвет, адрес и инициализирующий все переменные класса, кроме имени.
ВОТ РЕШЕНИЕ, КОТОРОЕ ПРОШЛО ПРОВЕРКУ:
public class Cat {
private String name;
private int weight;
private int age;
private String color;
private String address;
public void initialize(String name) {
this.name = name;
this.weight = weight + 1;
this.age = age + 1;
this.color = color + "серобурокозявчатый";
this.address = null;
}
public void initialize(String name, int weight, int age) {
this.name = name;
this.weight = weight;
this.age = age;
this.color = color + "серобурокозявчатый";
this.address = null;
}
public void initialize(String name, int age) {
this.name = name;
this.weight = weight;
this.age = age;
this.color = color;
this.address = null;
}
public void initialize(int weight, String color) {
this.name = null;
this.weight = weight;
this.age = age + 1;
this.color = color;
this.address = null;
}
public void initialize(int weight, String color, String address) {
this.name = null;
this.weight = weight;
this.age = age + 1;
this.color = color;
this.address = address;
}//напишите тут ваш код
}
Вопрос: почему вот в этом блоке решение прошло?
public void initialize(String name, int age) {
this.name = name;
this.weight = weight;
this.age = age;
this.color = color;
this.address = null;
}
По логике мне нужно было вписать здесь в this.weight = weight + 1;
а здесь this.color = color + "серобурокозявчатый";
Не понимаю... Или я вообще неправильно сделал, а решение по ошибке приняло?...