我写了这段代码:
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
Liber l = new Liber();// and here, the second 'Liber', it's telling me to "create constructor 'Liber()' in tipetnumerike.Liber"
虽然我的其他课程的代码是这样的:
package tipetnumerike;
public class Liber {
private int id;
private String Titulli;
private int VitiPublikimit;
public Liber(int i, String T, int VP) {
id = i;
VitiPublikimit = VP;
T = Titulli;
}
public int getId() {
return id;
}
public String getTitulli() {
return Titulli;
}
public int getVitiPublikimit() {
return VitiPublikimit;
}
public void setVitiPublikimit(int VP) {
VitiPublikimit = VP;
}
public void setTitulli(String T) {
Titulli = T;
}
public String ToString() {
return id + ':' + Titulli + '-' + VitiPublikimit;
}
public boolean equals(Object o) {
if (o instanceof Libri) {
return id == ((Liber) o).getId();
}
return false;
}
}
我不知道我做错了什么,我不认为我应该抛出一个构造函数,我想得到Liber类,在我的其他项目中,这没有发生。
答案 0 :(得分:0)
没有任何参数,你没有Liber的构造函数,但你正试图像这样构造它。
要么传递所需的Scanner nameInput = new Scanner(System.in);
System.out.print("What is your name? ");
String name = nameInput.next();
Student student = new Student(name);
student.addQuiz(96);
student.addQuiz(94);
student.addQuiz(93);
student.addQuiz(92);
System.out.println("Students Name: " + student.getName());
System.out.println("Total Quiz Scores: " + student.getTotalScore());
System.out.println("Average Quiz Score: " + student.getAverageScore());
(请注意,您可能希望查看命名约定),或者如消息所示,在Liber类中创建一个空构造函数。后者可能不是你想要的,因为那时你需要以后的另一种方式获得你需要的那些值。你也有适合他们的设置器,但这只是让你的代码更加冗长无缘无故。
答案 1 :(得分:0)
你使用new Liber();
这意味着创建一个没有参数的实例,默认情况下这个构造函数是存在的但因为你创建了另一个现在不存在的构造函数Liber(int i, String T, int VP)
,你必须添加它:
public Liber(){ ... }
另外
ToString()
- > toString()
如果没有,则不会被使用