Java 构造函数声明中的语法错误:';{&òx27;预期

Java 构造函数声明中的语法错误:';{&òx27;预期,java,Java,我不明白我对这个构造器做了什么错事: public class Student(String first_name, String last_name, int home1, int home2,int quiz1, int quiz2, int quiz3, int exam1, int exam2) { fname=first_name; lname=last_name; hw1_grade=home1; hw2_grade=home2; qu

我不明白我对这个构造器做了什么错事:

  public class Student(String first_name, String last_name, int home1, int home2,int quiz1, int quiz2, int quiz3, int exam1, int exam2)
  {
    fname=first_name;
    lname=last_name;
    hw1_grade=home1;
    hw2_grade=home2;
    quiz1_grade=quiz1;
    quiz2_grade=quiz2;
    quiz3_grade=quiz3; 
    exam1_grade=exam1;
    exam2_grade=exam2;
  }
public class Student {
    //fields
    String fname;
    String lname;
    //... etc.

    //here you declare your constructor, like so:
    public Student(String first_name, String last_name, int home1, int home2,int quiz1, int quiz2, int quiz3, int exam1, int exam2)
      {
            fname=first_name;
            lname=last_name;
            hw1_grade=home1;
            hw2_grade=home2;
            quiz1_grade=quiz1;
            quiz2_grade=quiz2;
            quiz3_grade=quiz3; 
            exam1_grade=exam1;
            exam2_grade=exam2;
      }
}
编译器说:{应该是。
另外:expected它一遍遍地说这个错误构造函数是在类定义中声明的。因此,您首先定义调用,然后在类定义中实现构造函数:

  public class Student(String first_name, String last_name, int home1, int home2,int quiz1, int quiz2, int quiz3, int exam1, int exam2)
  {
    fname=first_name;
    lname=last_name;
    hw1_grade=home1;
    hw2_grade=home2;
    quiz1_grade=quiz1;
    quiz2_grade=quiz2;
    quiz3_grade=quiz3; 
    exam1_grade=exam1;
    exam2_grade=exam2;
  }
public class Student {
    //fields
    String fname;
    String lname;
    //... etc.

    //here you declare your constructor, like so:
    public Student(String first_name, String last_name, int home1, int home2,int quiz1, int quiz2, int quiz3, int exam1, int exam2)
      {
            fname=first_name;
            lname=last_name;
            hw1_grade=home1;
            hw2_grade=home2;
            quiz1_grade=quiz1;
            quiz2_grade=quiz2;
            quiz3_grade=quiz3; 
            exam1_grade=exam1;
            exam2_grade=exam2;
      }
}

另外,在我看来,对于构造函数来说,这些参数太多了。为什么不只包括最基本的参数(名字、姓氏等)然后使用setter方法设置考试分数?

构造函数在类定义中声明。因此,首先定义调用,然后在类定义中实现构造函数:

  public class Student(String first_name, String last_name, int home1, int home2,int quiz1, int quiz2, int quiz3, int exam1, int exam2)
  {
    fname=first_name;
    lname=last_name;
    hw1_grade=home1;
    hw2_grade=home2;
    quiz1_grade=quiz1;
    quiz2_grade=quiz2;
    quiz3_grade=quiz3; 
    exam1_grade=exam1;
    exam2_grade=exam2;
  }
public class Student {
    //fields
    String fname;
    String lname;
    //... etc.

    //here you declare your constructor, like so:
    public Student(String first_name, String last_name, int home1, int home2,int quiz1, int quiz2, int quiz3, int exam1, int exam2)
      {
            fname=first_name;
            lname=last_name;
            hw1_grade=home1;
            hw2_grade=home2;
            quiz1_grade=quiz1;
            quiz2_grade=quiz2;
            quiz3_grade=quiz3; 
            exam1_grade=exam1;
            exam2_grade=exam2;
      }
}
public class Student {
    private String fname;
    private String lname;
    private int hw1_grade;
    private int hw2_grade;
    private int quiz1_grade;
    private int quiz2_grade;
    private int quiz3_grade;
    private int exam1_grade;
    private int exam2_grade;

    public Student(String first_name, String last_name, int home1, int home2, int quiz1, int quiz2, int quiz3,
            int exam1, int exam2) {
        fname = first_name;
        lname = last_name;
        hw1_grade = home1;
        hw2_grade = home2;
        quiz1_grade = quiz1;
        quiz2_grade = quiz2;
        quiz3_grade = quiz3;
        exam1_grade = exam1;
        exam2_grade = exam2;
    }
}

另外,在我看来,这些参数对于构造函数来说太多了。为什么不只包括最基本的参数(名字、姓氏等),然后使用setter方法设置考试分数?

如果您试图声明一个类,请使用:

public class Student {
    private String fname;
    private String lname;
    private int hw1_grade;
    private int hw2_grade;
    private int quiz1_grade;
    private int quiz2_grade;
    private int quiz3_grade;
    private int exam1_grade;
    private int exam2_grade;

    public Student(String first_name, String last_name, int home1, int home2, int quiz1, int quiz2, int quiz3,
            int exam1, int exam2) {
        fname = first_name;
        lname = last_name;
        hw1_grade = home1;
        hw2_grade = home2;
        quiz1_grade = quiz1;
        quiz2_grade = quiz2;
        quiz3_grade = quiz3;
        exam1_grade = exam1;
        exam2_grade = exam2;
    }
}
公共班级学生{
//声明;
}
否则,如果您试图声明类的构造函数,则:

公共班级学生{
//参数化构造函数
公立学生(//参数){
//身体
}
}

如果您试图声明一个类,请使用:

公共班级学生{
//声明;
}
否则,如果您试图声明类的构造函数,则:

公共班级学生{
//参数化构造函数
公立学生(//参数){
//身体
}
}

那不是一个构造函数。它是一个格式错误的类声明。这应该是它自己的类声明,还是在一个实际的
学生
类中?在一个学生类中,我应该将其包含在程序中,从第一行删除“class”一词。构造函数应该只是公共学生(……)这就是我最初的想法,但是编译器只是说它是一个无效的方法声明。它是在
学生
类还是
学生
类中?构造函数的名称必须与类的名称相同。请你的问题显示封闭的类声明。那不是一个构造函数。它是一个格式错误的类声明。是吗这应该是它自己的类声明,或者这是在一个实际的
学生
类中?在一个学生类中,我应该将其包含在程序中,从第一行删除“class”一词。构造函数应该只是公共学生(……)这就是我最初的想法,但是编译器只是说它是一个无效的方法声明。它是在
student
类还是
student
类中?构造函数的名称必须与类的名称相同。请回答你的问题以显示封闭的类声明。很抱歉,我忘记添加该部分,但我确实定义了它l最初,我刚刚在学生构造函数前面放置了void:public void student(String…)这似乎解决了问题,但我仍然不确定我所做的是否正确以及原因。@Gettin'Stupider无需道歉。这对我来说也曾经是新的。很抱歉,我忘了添加那个部分,但我最初确实定义了它,我刚才在学生构造函数前面放了void:public void student(String…)这似乎解决了问题,但我仍然不确定我所做的是否是正确的,以及为什么是正确的。@Gettin'Stupider不需要道歉。这对我来说也曾经是新的。