можете подробней объяснить, что происходит в каждой строке?
public boolean equals(Object o) {
            if (this == o)
                return true;
            System.out.println(getClass()+" "+o.getClass());
            if (o == null || getClass() != o.getClass()) return false;

            Human human = (Human) o;

            if (name != null ? !name.equals(human.name) : human.name != null)
                return false;
            return assets != null ? assets.equals(human.assets) : human.assets == null;
        }