Java не может найти определенный метод в отдельном файле - PullRequest
0 голосов
/ 23 ноября 2018

Я использую код Visual Studio, и я просто создаю папку с «проектом» внутри, я не люблю использовать netbeans, eclipse и т. Д. Для небольших программ.

Итак, я создаю небольшую программуТо, что я сомневался, сработает, но это было сделано для части mos, он создает RPG-подобного персонажа и второго персонажа и создает симулированную битву, в которой один персонаж выигрывает, основываясь на одном стате.Кажется, что все работает, но когда я вызываю метод Battle(oumar, aisha);, который берет два символа и заставляет их сражаться, он получает сообщение «1004 *

». Так как я не настолько опытен, я не уверен, в чем проблема на самом делеявляется.Вот код для основного класса:

    public class Main {
    public static void main(String args[]) {

        Character oumar = new Character("Oumar", 10);
        Character aisha = new Character("Aisha", 9);
        Battle(oumar, aisha);

    }


}

, а вот второй класс в отдельном файле (все еще в той же папке)

public class Character {

    String name;
    int BattlePower;
    int wins;
    Character one;
    Character two;

    public Character(String name, int BattlePower) {
        this.name = name;
        this.wins = wins;
        System.out.println("New character: "+ name);
        this.BattlePower = BattlePower;
        this.wins = wins;
        System.out.println(name + "has a Battle Power of " + BattlePower);
    }

    public void Battle(Character one, Character two) {

        this.one = one;
        this.two = two;

        if (one.BattlePower > two.BattlePower ) {
            System.out.print("Character " + one + " has won the Battle!");
            one.wins++;
            System.out.print("Character one now has " + wins + " wins!");
        }
        else if (two.BattlePower > one.BattlePower) {
            System.out.print("Character " + two + " has won the Battle!");
            two.wins++;
            System.out.print("Character two now has " + wins + " wins!");
        }
        else {

            System.out.print("The two characters have tied!");

        }    
    }    
}

Любая помощь будет полезна,а также любые советы, которые могут помочь мне в будущем.

Ответы [ 2 ]

0 голосов
/ 23 ноября 2018

Вы можете поместить конструктор без аргументов в класс Character, например public Character () {}.Затем в Main.java вы можете использовать конструктор no-arg для создания объекта класса Character, а затем вызвать метод Battle наподобие Character ch1 = new Character ();ch1.Battle (Умар, Аиша).

0 голосов
/ 23 ноября 2018

Я полагаю, вам нужно будет использовать

oumar.Battle(oumar, aisha)

или

aisha.Battle(oumar, aisha)

, так как метод внутри нестатическогокласс, поэтому он не может быть вызван без ссылки на объект.

Если вы хотите назвать его как

Battle(oumar, aisha)

, вам нужно переместить его в основной класс.

Кроме того, эта проблемадолжен присутствовать и в других IDE.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...