mumei2018 发表于 2023-10-2 16:24:33

eclipse报错提示Identifier expected after this token 请问哪里出问题了

我分了四个类
people是父类 有个run方法
student和teacher是子类 各自重写run方法、
test 创建两个对象 然后各自调run方法
提示错误
Syntax error on token "run", Identifier expected after this token
请问是哪里出问题了

People类

package itHeimaA2;

public class People {
        public void run() {
                System.out.println("People is running");
        }

}


Teacher类

package itHeimaA2;

public class Teacher extends People{
        public void run() {
                System.out.println("Teacher is running~~~~")
        }
}



Student类

package itHeimaA2;

public class Student extends People{
        public void run() {
                System.out.println("Student is running~~~");
        }

}




Test类
package itHeimaA2;

public class Test {
        People p1 = new Student();
        p1.run();
       
        People p2 = new Student();
        p2.run();
       

}


运行结果如图


代码是直接抄的应该没有抄错 第一次运行成功了 但是不小心按的 ctrl shift f11 然后代码全变色了 关闭窗口 删除原项目 重写后 就这样报错了 请问是哪里出了问题 谢谢各位了

isdkz 发表于 2023-10-2 16:24:41

在Test类中,p1.run()和p2.run()应该在方法中执行,而不是在类中。正确的代码应该是这样的:

package itHeimaA2;

public class Test {
    public static void main(String[] args){
      People p1 = new Student();
      p1.run();

      People p2 = new Teacher();
      p2.run();
    }
}


此外,Teacher类中的run方法缺少一个分号,应该改为:

package itHeimaA2;

public class Teacher extends People{
    public void run() {
      System.out.println("Teacher is running~~~~");
    }
}

陶远航 发表于 2023-10-2 16:24:52

根据你提供的代码和描述,问题可能出在 Test 类中的代码片段上。你需要将对象的创建和方法调用放在方法中或者构造函数中,而不是直接写在类的定义中。

以下是修复后的代码:

package itHeimaA2;

public class Test {
    public static void main(String[] args) {
      People p1 = new Student();
      p1.run();
      
      People p2 = new Teacher();
      p2.run();
    }
}


在 Test 类中,我们创建了一个 main 方法,并在其中实例化了 Student 和 Teacher 对象,然后调用它们的 run 方法。

注意,Java 的代码必须放在方法或者构造函数中,而不是直接写在类的定义中。在修复后的代码中,将对象的创建和方法调用放在了 main 方法中。

请确保按照上述方式修改代码并尝试运行。如果还有其他问题,请提供完整的错误信息以帮助我更好地诊断问题。
如果问题已经解决,请设置最佳答案

Mike_python小 发表于 2023-10-2 16:26:22

问题出在你在Test类中的代码写法上。在Java中,类中的成员变量初始化和方法调用必须在方法体内进行,不能直接写在类的声明部分。

下面是修改后的Test类代码:

java
package itHeimaA2;

public class Test {
    public static void main(String[] args) {
      People p1 = new Student();
      p1.run();

      People p2 = new Teacher();
      p2.run();
    }
}


修改后的代码,将你原先的Test类中的成员变量初始化和方法调用放在了main方法中,并添加了public static void main(String[] args)作为程序的入口点。

另外,注意对于Teacher类中的run方法,缺少了一个分号,在语句结束时需要添加分号。

希望能够解决你的问题,如有其他疑问请随时追问。

mumei2018 发表于 2023-10-2 17:00:38

谢谢楼上各位 我又犯低级错误了
页: [1]
查看完整版本: eclipse报错提示Identifier expected after this token 请问哪里出问题了