新手,在写一个学生信息系统管理程序的时候出现了这个问题
部分代码如下:
public class StudentInfo implements Comparable<StudentInfo>{
private int number;
private String name;
private String grade;
private String mailbox;
private String sex;
private int code;
private int score;
public StudentInfo(int number,String name,String grade,String mailbox,String sex,int score){
super();
this.number = number;
this.name = name;
this.grade = grade;
this.score = score;
this.mailbox=mailbox;
this.sex=sex;
}
private int getScore(){
return score;
}
private void setScore(int score){
this.score=score;
}
static List<StudentInfo>stuList=new
ArrayList<StudentInfo>();
static Scanner sc=new
Scanner(System.in);

public String toString(){
return
this.number+","+this.name+","+this.grade+","+this.score+","+this.mailbox+","+this.sex+","+this.code;
}
public StudentInfo(){
super();
}
public int getNumber(){
return number;
}
public void setNumber(int number){
this.number=number;
}
public String getName(){
return name;
}
public void setName(String name){
this.name=name;
}
public String getGrade(){
return grade;
}
public void setGrade(String grade){
this.grade=grade;
}
public void setMailbox(String mailbox){
this.mailbox=mailbox;
}
public void setSex(String sex){
this.sex=sex;
}
===============================================================================================
public static void add(){
while(true){
System.out.println("请输入学生姓名:");
String name = sc.next();
System.out.println("请输入学生班级:");
String grade = sc.next();
System.out.println("请输入学生学号:");
int number = sc.nextInt();
System.out.println("请输入学生性别:");
String sex = sc.next();
System.out.println("请输入邮箱账号:");
String mailbox = sc.next();
System.out.println("分数:");
int score = sc.nextInt();
System.out.println("按q退出添加,按任意键继续添加!");
StudentInfo stu=new StudentInfo(number, name, grade,score);
stuList.add(stu);
String q=sc.next();
if(q.equals("q")){
break;
}
===============================================================================================那么这个问题要怎么解决???
求大佬解答。
谢谢!

解决方案 »

  1.   

    public StudentInfo(int number,String name,String grade,String mailbox,String sex,int score){
    super();
    this.number = number;
    this.name = name;
    this.grade = grade;
    this.score = score;
    this.mailbox=mailbox;
    this.sex=sex;
    }
    重载这个方法
    public StudentInfo(int number,String name,String gradeint score){
    super();
    this.number = number;
    this.name = name;
    this.grade = grade;
    this.score = score;
    }
      

  2.   

    public StudentInfo(int number,String name,String grade,String mailbox,String sex,int score)定义的带参构造是需要6个参数的
    而你在实例的时候只传了4个StudentInfo stu=new StudentInfo(number, name, grade,score);
    要么再写一个4参的构造方法,要么传够6个参数