鱼C论坛

 找回密码
 立即注册
查看: 1592|回复: 4

[已解决]eclipse报错提示Identifier expected after this token 请问哪里出问题了

[复制链接]
发表于 2023-10-2 16:24:33 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
我分了四个类
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 然后代码全变色了 关闭窗口 删除原项目 重写后 就这样报错了 请问是哪里出了问题 谢谢各位了
最佳答案
2023-10-2 16:24:41
在Test类中,p1.run()和p2.run()应该在方法中执行,而不是在类中。正确的代码应该是这样的:

  1. package itHeimaA2;

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

  6.         People p2 = new Teacher();
  7.         p2.run();
  8.     }
  9. }
复制代码


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

  1. package itHeimaA2;

  2. public class Teacher extends People{
  3.     public void run() {
  4.         System.out.println("Teacher is running~~~~");
  5.     }
  6. }
复制代码
eclips报错.png
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2023-10-2 16:24:41 | 显示全部楼层    本楼为最佳答案   
在Test类中,p1.run()和p2.run()应该在方法中执行,而不是在类中。正确的代码应该是这样的:

  1. package itHeimaA2;

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

  6.         People p2 = new Teacher();
  7.         p2.run();
  8.     }
  9. }
复制代码


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

  1. package itHeimaA2;

  2. public class Teacher extends People{
  3.     public void run() {
  4.         System.out.println("Teacher is running~~~~");
  5.     }
  6. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-10-2 16:24:52 | 显示全部楼层
根据你提供的代码和描述,问题可能出在 Test 类中的代码片段上。你需要将对象的创建和方法调用放在方法中或者构造函数中,而不是直接写在类的定义中。

以下是修复后的代码:

  1. package itHeimaA2;

  2. public class Test {
  3.     public static void main(String[] args) {
  4.         People p1 = new Student();
  5.         p1.run();
  6.         
  7.         People p2 = new Teacher();
  8.         p2.run();
  9.     }
  10. }
复制代码


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

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

请确保按照上述方式修改代码并尝试运行。如果还有其他问题,请提供完整的错误信息以帮助我更好地诊断问题。
如果问题已经解决,请设置最佳答案
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-10-2 16:26:22 | 显示全部楼层
问题出在你在Test类中的代码写法上。在Java中,类中的成员变量初始化和方法调用必须在方法体内进行,不能直接写在类的声明部分。

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

  1. java
  2. package itHeimaA2;

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

  7.         People p2 = new Teacher();
  8.         p2.run();
  9.     }
  10. }
复制代码


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

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

希望能够解决你的问题,如有其他疑问请随时追问。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-10-2 17:00:38 | 显示全部楼层
谢谢楼上各位 我又犯低级错误了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-5-11 16:01

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表