首页 > 解决方案 > java,非静态方法不能从静态引用,但我已经有实例?

问题描述

第一个问题,对不起,如果这是一个糟糕的问题,我是 OOP 的新手。我在方法中使用了两个实例,一个作为在创建实例的另一个类中调用的参数传递,一个在方法中创建。然后我尝试从一个使用这些实例的 seperet 类中调用一个方法,但是得到一个错误,说它不能从静态位置引用?

非常感谢任何帮助

public void displayRoom(character c){
    if(ItemsInRoom.size() > 0){
        for(int i = 0; i < ItemsInRoom.size(); i++){
            System.out.println(ItemsInRoom.get(i).getName());
        }
}
    if(enemies.size() > 0){
        for(int i = 0; i < enemies.size(); i++){
            System.out.println(enemies.get(i).getName());
            Random rand = new Random();
            int rand_3 = rand.nextInt(10);
            if(rand_3 > 5){
                character temp = enemies.get(0);
                character.attack(c, temp);//ERROR IS HERE

我试图调用的方法在另一个类中:

public void attack(character c, character e){
        System.out.println(e.getName() + "has attacked you!");
        c.setHealth(-3);
        System.out.println("Health: " + c.getHealth());

标签: javaoop

解决方案


推荐阅读