问题描述
- 为什么会The constructor Student() is undefined;
-
import java.util.*;
public class Myproject5 {
public static void main(String[] args) {
Scanner con=new Scanner(System.in);
System.out.println("请输入需要输入人的个数:");
int b=con.nextInt();
con.nextLine();
for(int j=0;j<b;j++){
System.out.println("请输入您的姓名:");
String nname=con.nextLine();
System.out.println("请输入您的性别:");
String nsex=con.nextLine();
System.out.println("请输入您的年龄:");
int nage=con.nextInt();
System.out.println("请输入您的成绩:");
float nscore=con.nextFloat();
Student stu=new Student();
stu.setName=nname;
stu.setSex=nsex;
stu.setAge=nage;
stu.setScore=nscore;
stu.a();
con.nextLine();
}
}}
class Student{//student函数
private String name;
private String sex;
private int age;
private float score;
Student(String inName, String inSex,int inAge,float inScore){//setter方法
setName(inName);
setSex(inSex);
setAge(inAge);
setScore(inScore);
}
public void setName(String inName){
name=inName;
}
public void setSex(String inSex){
sex=inSex;
}
public void setAge(int inAge){
age=inAge;
}
public void setScore(float inScore){
score=inScore;
}
public String getName(){//getter方法
return name;
}
public String getSex(){
return sex;
}
public int getAge(){
return age;
}
public float getScore(){
return score;
}
public void a(){
System.out.println("自我介绍:我叫"+name+","+"性别:"+sex+","+"年龄:"+age+","+"分数:"+score);
}
}
解决方案
Student 类的默认空构造器需显式进行定义,因为你定义了一个带参的构造器覆盖了默认的,而此时你再使用默认的构造器就会导致异常。
两种解决方法:1.定义Student类的默认构造器;
2.使用重载后的Student类带参构造器。
希望我的回答你能明白,希望能帮到你!
解决方案二:
The constructor XMLOutputter(Format) is undefined
window.showmodaldialog undefined is not a function
The constructor AlertDialog.Builder(***) is undefined
解决方案三:
你没有定义无参构造器啊。
或者写成Student stu=new Student(name, sex,age,score);
解决方案四:
异常信息显示没有提供无参构造函数,因为你自定义了有参数的构造函数,当直接使用new Student()时没有传递参数,当然会报这个错误的。
java只有在没有定义构造函数时,才会自动添加一个默认的无参数构造函数,这样new Object()操作就不会有问题。