Вывод ссылки вместо содержимого в стеке

проблема состоит в том, что при выводе моей персоны выдается, как я понимаю, ссылка на этот экземпляр класса персон.

public class StackMas { // реализация самого стека

Person[] stack;
int top;
int sizeStack;

public StackMas(int sizeStack) {
    this.sizeStack = sizeStack;
    stack = new Person[sizeStack];
    top = -1;
}
private void isUniqPerson(Person[] stack, Person addPerson){
    if(addPerson == null){
        throw new IllegalArgumentException("person equal null!");
    }
        for (int i = 0; i < stack.length; i++) {
            if(addPerson.equals(stack[i])){
                throw new IllegalArgumentException("person already add in stack persons!!!");
            }
        }
    }

void push(Person person){
    if (person == null) {
        throw new IllegalArgumentException("person equal null!");
    }
        if (stack.length <= sizeStack){
            isUniqPerson(stack, person);
            stack[++top] = person;
        }
}
Person peek(){
    if (top == -1)
        throw new EmptyStackException();
    return stack[top];
}
Person pop(){
        return stack[top--];
}
boolean isEmpty(){
    return (top==-1);
}

}

public class Person { // создание персоны
String firstName;
String lastName;
int age;

public Person(String firstName, String lastName, int age) {
    this.firstName = firstName;
    this.lastName = lastName;
    this.age = age;
}

}

public class TestStack { // тест моего стека и создание персоны
public static void main(String[] args) {
    StackMas stack = new StackMas(5);

    Person personMax = new Person("Maksim", "Shesterkin", 18);
    Person personAndrey = new Person("Andrey", "Shesterkin", 24);
    Person personAndrew = new Person("Andrey", "Shesterkin", 24);

    stack.push(personMax);
    System.out.println(personMax);
    System.out.print("Стек: ");
    while (!stack.isEmpty()) {
        Person value = stack.pop();
        System.out.println();
        System.out.println(value);
    }
    System.out.println("");
}

}


Ответы (1 шт):

Автор решения: E.Builin

Вам нужно переопределить метод toString() в вашем классе Person. Тогда при выводе его в println будет выводиться не ссылка, а та строка, которую вы определите. По умолчанию унаследованный от Object метод возвращает ссылку, что вы и видите.

→ Ссылка