«Не удается найти символ» Ошибка при создании нового объекта из класса? - PullRequest
0 голосов
/ 27 мая 2020
public class Monster{

public final String TOMBSTONE = "Here Lies a Dead monster";


private int health = 500;
private int attack = 20;
private int movement = 2;

public String name = "Big Monster";


public int getAttack()
{
    return attack;
}

public int getMovement()
{
    return movement;
}

public int getHealth()
{
    return health;
}

public Monster(int health, int attack, int movement)
{
    this.health = health;
    this.attack = attack;
    this.movement = movement;

}

public Monster()
{

}}


public class Frank {

public static void main(String[] args){

    Monster NewMonster = new Monster();

    NewMonster.name = "Frank";

    System.out.println(NewMonster.name + " has an attack value of " + NewMonster.getAttack());

}

}

При попытке создать новый объект из моего класса Monster я получаю эту ошибку:

Frank.java:5: error: cannot find symbol
            Monster NewMonster = new Monster();
            ^

символ: класс Расположение монстра: класс Франк

Я новичок в Java, извините, если это простое / легкое исправление, но все, что я исследовал, не дает мне решения этой ошибки.

Заранее благодарим за любые ответы / отзывы.

Ответы [ 2 ]

0 голосов
/ 27 мая 2020

1 Вы должны определить только один класс publi c, который будет сохранен в соответствии с вашим java именем файла (. java)

2 ссылки на объекты всегда будут в нижнем регистре

class Monster {

public final String TOMBSTONE = "Here Lies a Dead monster";

private int health = 500;
private int attack = 20;
private int movement = 2;

public String name = "Big Monster";

public int getAttack() {
    return attack;
}

public int getMovement() {
    return movement;
}

public int getHealth() {
    return health;
}

public Monster(int health, int attack, int movement) {
    this.health = health;
    this.attack = attack;
    this.movement = movement;

}

public Monster() {

}

} // только Фрэнк может быть классом publi c в одном java файле, или же создайте два разных класса java и импортируйте. publi c class Frank {

publi c stati c void main (String [] args) {

Monster newMonster = new Monster();

newMonster.name = "Frank";

System.out.println(newMonster.name + " has an attack value of " + newMonster.getAttack());

}}

Вывод: Frank имеет значение атаки 20

0 голосов
/ 27 мая 2020

Вы не можете иметь несколько классов publi c в одном файле в Java. Поэтому вам нужно либо удалить модификатор publi c одного из ваших классов, либо поместить основной метод в свой класс publi c. Я сделал последнее, поскольку нет необходимости помещать основной метод в отдельный класс только для создания экземпляра вашего объекта.

Я обновил ваш код, и теперь он работает

public class Monster{

    public static void main(String[] args) {

        Monster NewMonster = new Monster();

        NewMonster.name = "Frank";

        System.out.println(NewMonster.name + " has an attack value of 
        " + NewMonster.getAttack());
    }

    public final String TOMBSTONE = "Here Lies a Dead monster";


    private int health = 500;
    private int attack = 20;
    private int movement = 2;

    public String name = "Big Monster";


    public int getAttack() {
        return attack;
    }

    public int getMovement(){
        return movement;
    }

    public int getHealth(){
        return health;
    }

    public Monster(int health, int attack, int movement){
        this.health = health;
        this.attack = attack;
        this.movement = movement;
    }

    public Monster(){}
}
...