/
SofiMut
/
People
Обзор
Документация
Войти
/
SofiMut
/
People
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
src/main/java/Person.java
84 строки
2 KB
Sofia Stepanova
first_commit
23 ноя 2025, 11:56
23 ноя 2025, 11:56
eb171d1
Код
Авторство
О чём код?
import java.util.Objects; import java.util.OptionalInt; public class Person { protected final String name; protected final String surname; protected int age; protected String city; public Person(String name, String surname) { this.name = name; this.surname = surname; } public Person(String name, String surname, int age) { this.name = name; this.surname = surname; this.age = age; } public PersonBuilder newChildBuilder() { return new PersonBuilder().setSurname(surname).setAddress(city); } public boolean hasAge() { return age != 0; } public boolean hasAddress() { return city != null; } public String getName() { return name; } public String getSurname() { return surname; } public OptionalInt getAge() { if (hasAge()) { return OptionalInt.of(age); } return OptionalInt.empty(); } public String getCity() { return city; } public void setCity(String city) { this.city = city; } public void happyBirthday() { if (hasAge()) age++; } @Override public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; Person person = (Person) o; return age == person.age && name.equals(person.name) && surname.equals(person.surname) && Objects.equals(city, person.city); } @Override public int hashCode() { return Objects.hash(name, surname); } @Override public String toString() { return "Person{" + "name='" + name + '\'' + ", surname='" + surname + '\'' + ", age=" + age + ", address='" + city + '\'' + '}'; } }