java, вызов конструктора из конструктора c параметрами

Рейтинг: 1Ответов: 1Опубликовано: 10.01.2023

Изучаю конструкторы, пытаюсь решить задачу. Мне надо переписать конструктор без параметров, что бы он вызывал второй конструктор с параметрами.

class Hero {
    private String name;
    private int hp;

    public Hero(String name, int hp) {
        this.name = name;
        this.hp = hp;
    }

    public Hero() {
        name = "Paratrooper";
        hp = 100;
    }

    public String getName() {
        return name;
    }

    public int getHp() {
        return hp;
    }
}

пример выполнения тестов

вызов new Hero().getName() возвращает Paratrooper; вызов new Hero("Stranger", 50).getName() возвращает Stranger.

пытаюсь сделать вот так

public Hero() {
        this(name,hp);
        name = "Paratrooper";
        hp = 100;
    }

вываливается ошибка

error: cannot reference name before supertype constructor has been called this(name,hp);

Ответы

▲ 1Принят

Попробуйте написать конструктор так:

public Hero() {
    this("Paratrooper", 100);
}