<commit_before>package ru.job4j.collections.map;

import java.util.Calendar;

/**
 * Модель User.
 *
 * @author <NAME> (<EMAIL>) by 15.10.17;
 * @version $Id$
 * @since 0.1
 */
public class User {
    /**
     * Имя.
     */
    private String name;
    /**
     * Колличество детей.
     */
    private int children;
    /**
     * Дата рождения.
     */
    private Calendar birthday;

    /**
     * Конструктор.
     * @param name имя.
     * @param children дети.
     */
    public User(String name, int children) {
        this.name = name;
        this.children = children;
    }

    /**
     * Расшифровка обьекта.
     * @return стринг.
     */
    @Override
    public String toString() {
        return "User{"
                + "name='"
                + name
                + '\''
                + ", children="
                + children
                + ", birthday="
                + birthday
                + '}';
    }

    /**
     * Переопределенный метод equals.
     * @param o сравнивыемый обьект
     * @return true of false.
     */
    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;

        User user = (User) o;

        if (children != user.children) return false;
        if (name != null ? !name.equals(user.name) : user.name != null) return false;
        return birthday != null ? birthday.equals(user.birthday) : user.birthday == null;
    }
}<commit_msg>5. Перекрывать и equals и hashCode [#1002]<commit_after>package ru.job4j.collections.map;

import java.util.Calendar;

/**
 * Модель User.
 *
 * @author <NAME> (<EMAIL>) by 15.10.17;
 * @version $Id$
 * @since 0.1
 */
public class User {
    /**
     * Имя.
     */
    private String name;
    /**
     * Колличество детей.
     */
    private int children;
    /**
     * Дата рождения.
     */
    private Calendar birthday;

    /**
     * Конструктор.
     * @param name имя.
     * @param children дети.
     */
    public User(String name, int children) {
        this.name = name;
        this.children = children;
    }

    /**
     * Расшифровка обьекта.
     * @return стринг.
     */
    @Override
    public String toString() {
        return "User{"
                + "name='"
                + name
                + '\''
                + ", children="
                + children
                + ", birthday="
                + birthday
                + '}';
    }

    /**
     *Хэш код.
     * @return число.
     */
    @Override
    public int hashCode() {
        int result = name != null ? name.hashCode() : 0;
        result = 31 * result + children;
        result = 31 * result + (birthday != null ? birthday.hashCode() : 0);
        return result;
    }

    /**
     * Переопределенный метод equals.
     * @param o сравнивыемый обьект
     * @return true of false.

     */
    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;

        User user = (User) o;

        if (children != user.children) return false;
        if (name != null ? !name.equals(user.name) : user.name != null) return false;
        return birthday != null ? birthday.equals(user.birthday) : user.birthday == null;
    }
}
{'fraction_non_alphanumeric': 0.13693693693693693, 'fraction_numerical': 0.008708708708708709, 'mean_word_length': 1.5544478527607362, 'pattern_counts': {'":': 0, '<': 7, '<?xml version=': 0, '>': 7, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '676079', 'n_tokens_mistral': 1076, 'n_tokens_neox': 1065, 'n_words': 263}