有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

JAVA很难从对象调用方法。(初学者)

我希望你身体好。 我是Java的初学者

我的问题是我无法从类猜游戏中找到方法talk(),我想知道为什么

这里是我调用方法talk()的类中的代码:

package guessGame;

public class GuessGame {
    
    void guessGameStarts(){
    System.out.println("    Welcome to a new party of GuessGame! \n We have 4 news cantidates for this session!\n");
    }
    
    Player player1 = new Player("Maurisse");
    Player player2 = new Player("Albert");
    Player player3 = new Player("Mathilde");
    Player player4 = new Player("Chloé");
    
    player1.talk();
}

这里是实现talk()方法的类:

package guessGame;

public class Player {
    
    private String name;
    
    Player(String name) {
        this.name = name;
    }
    
    public void talk() {
        System.out.println("hi");
    }
}

Eclipse为player1.talk()行给出的错误是:标记“talk”上的语法错误,该标记后面应该是标识符

提前感谢您的帮助:)


共 (2) 个答案

  1. # 1 楼答案

    问题是,您试图在加载类的上下文中执行代码。要做到这一点,必须使用static代码块。不过,这并不是你想要的解决方案。您可能希望该代码在guessGameStarts方法中执行:

    public class GuessGame {
        
        void guessGameStarts() {
            System.out.println("    Welcome to a new party of GuessGame! \n We have 4 news cantidates for this session!\n");
        
        
            Player player1 = new Player("Maurisse");
            ...
        
            player1.talk();
        }
    }
    

    缩进代码对于提高可读性非常重要。如果您打算将代码放在guessGameStarts(这只是一个简单的打印语句)中,那么您会看到您的代码在这个方法之外

  2. # 2 楼答案

    你的代码放错地方了。应该是这样的:

    课堂猜谜游戏:

    package guessGame;
    
    public class GuessGame {
    
        void guessGameStarts(){
            System.out.println("    Welcome to a new party of GuessGame! \n We have 4 news cantidates for this session!\n");
    
            Player player1 = new Player("Maurisse");
            Player player2 = new Player("Albert");
            Player player3 = new Player("Mathilde");
            Player player4 = new Player("Chloé");
            player1.talk();
        }
    }
    

    职业球员:

    package guessGame;
    
    public class Player {
        private String name;
        Player(String name) {
            this.name = name;
        }
        public void talk() {
            System.out.println("hi");
        }
    }