为什么会出现这样的错误


public class MainFrame {
    public static void main(String[] args) {
        student st=new student(21);
        System.out.println("age:"+st.getAge());

    }
}
public class person(){
    private int age;

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
    System.out.println("person 无参构造器") ;

}
public class student extends person{
    public static student(int ag)
    {
        System.out.println("student构造器创建");
        this.setAge(ag);
    }
}

img

  • 下面这个语句 要放到 类的方法里面【构造方法,或者其他自定义方法】,不能直接放到类中
  • 另外 person 这个类定义也有问题【类名首字母按规范 要大写,注意!!!】,参考如下:
public class Person{
    private int age;

    public Person() {
       System.out.println("person 无参构造器") ;
   }
 
    public int getAge() {
        return age;
    }
 
    public void setAge(int age) {
        this.age = age;
    }
}

该回答引用ChatGPT

下面是修复后的代码:


public class MainFrame {
    public static void main(String[] args) {
        student st = new student(21);
        System.out.println("age:" + st.getAge());
    }
}

public class person {
    private int age;

    public person() {
        System.out.println("person 无参构造器");
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
}

public class student extends person {
    public student(int ag) {
        System.out.println("student构造器创建");
        this.setAge(ag);
    }
}

你19行输出语句不在任何函数中啊
public class person后面的括号删除,这里是类定义,不是函数定义

1.class person()去掉括号
2.System.out.println("person 无参构造器") ;代码写到了函数外面
3.public类型的类需要放到以各自命名的文件里去定义,不能都放同一个文件里
放同一个文件里,那么把public删掉,public类型的构造函数也要把public删掉,static也要删掉

  • 有一些语法错误

  • person 类的构造方法定义不正确,应该使用大括号 {} 来定义方法体


public person() {
    System.out.println("person 无参构造器");
}

  • student 类的构造方法定义也有问题,应该去掉 static 关键字,构造方法名应该和类名相同
public student(int ag) {
    System.out.println("student构造器创建");
    this.setAge(ag);
}