当我从'student class内部调用它时,为什么会给我一个错误?

Why is it giving me an error when i'm calling it from inside the 'student class?

*我必须创建一个名为 student

的 class

但是我遇到了一个错误,我不知道如何完成代码,但是 我所做的是:

public class Student {

String name;
private int age;
private int grade;
private int average;
private String disability;

public void StuInfo(){
name = "John";
age = 15;
grade = 71;
average = 63;
disability = "No";

    
System.out.println("Name: "+name+",Age: "+age+",Grade: "+grade+",Average: "+average );
}


public static void main(String[] args){
    StuInfo();
}
}

请帮忙。

您正在从静态方法调用非静态方法。通过 -> new StuInfo();

创建 StuInfo 对象

为了成功编译您的程序,您需要首先创建 class Student 的新对象或将 stunInfo() 方法设为静态。 此外,方法名称的 java 约定是稍后以小写字母开头,因此 StunInfo 最好命名为 'stunInfo'。可以考虑像'printStudentInfo()'这样的名字,这样会更易读,更好地展示方法的作用。(提高可读性) 这些注释可以使您的示例正常工作,但它不是发布的家庭作业的完整解决方案。您可能需要将 stunInfo() 方法的访问修饰符更改为只能从 class 等

中访问
public class Student {

String name;
private int age;
private int grade;
private int average;
private String disability;

public void Student(){
  name = "John";
  age = 15;
  grade = 71;
  average = 63;
  disability = "No";
} // end constructor

public void stunInfo(){
    System.out.println("Name: "+name+",Age: "+age+",Grade: "+grade+",Average: "+average );
} //end stunInfo


public static void main(String[] args){
    //Create a new student
    Student student=new Student();
    //Invoke stunInfo method
    student.stunInfo();
} //end main

} //end class