主函数里遇到构造函数未定义怎么解决?

zcy0602 2014-11-23 11:38:16
作业做的是个投票软件,遇到的问题如下图,代码在下面。一直没办法解决希望有人能帮帮忙……谢谢了!



public class Demo {

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

}



public class Student {
private int No;
private String name;
protected int vote;
public Student(int No,String name,int vote){
this.setNo(No);
this.setName(name);
this.setVote(vote);
}
public int getNo() {
return No;
}
public void setNo(int no) {
No = no;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getVote() {
return vote;
}
public void setVote(int vote) {
this.vote = vote;
}
public Student stu[]= {new Student(1,"张三",0),new Student(2,"李四",0),new Student(3,"王五",0),new Student(4,"赵六",0)};
}


import java.util.Arrays;
import java.util.Scanner;


public class VotePart extends Student{
public VotePart(int No, String name, int vote) {
super(No, name, vote);
}
public void print(){
for (int i=0;i<super.stu.length;i++){
System.out.println(super.stu[i].getNo()+":"+super.stu[i].getName()+"【"+super.stu[i].getVote()+"】");
}
}
public void vote(){
boolean flag = false;
for(;!flag;){
Scanner sc=new Scanner(System.in);
System.out.println("请输入班长候选人代号(数字0结束):");
int id=sc.nextInt();
switch (id){
case 0:{
flag = true;
break;
}
case 1:{
super.stu[0].setVote(super.stu[0].getVote()+1);
break;
}
case 2:{
super.stu[1].setVote(super.stu[1].getVote()+1);
break;
}
case 3:{
super.stu[2].setVote(super.stu[2].getVote()+1);
break;
}
case 4:{
super.stu[3].setVote(super.stu[3].getVote()+1);
break;
}
default:{
System.out.println("次选票无效,请输入正确的候选人代号!");
}
}
}
Arrays.sort(this.stu);
System.out.println("投票最终结果:"+this.stu[0].getName()+"同学,最后以"+this.stu[0].getVote()+"票当选班长!");
}
}
...全文
1706 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
猿人林克 2014-11-25
  • 打赏
  • 举报
回复
改成: new VotePart(1,"我是name",1); 你构造函数是public VotePart(int No, String name, int vote),用的时候new VotePart(),你觉得能对么
粉末无颜 2014-11-24
  • 打赏
  • 举报
回复
很明显,没有默认的构造方法,Votepart类中添加public VotePart(){}
ghx287524027 2014-11-24
  • 打赏
  • 举报
回复
要么在new VotePart();中添加参数,要么在VotePart{}类中添加无参构造,总之保证在类VotePart{}中有你要调用的构造函数就行
zcy0602 2014-11-24
  • 打赏
  • 举报
回复
引用 3 楼 yuejian 的回复:
你写的是带2个参数的构造函数, New的又是没有参数的 当然不对了。
可以告诉我怎么改吗?谢谢啦
yuejian 2014-11-24
  • 打赏
  • 举报
回复
你写的是带2个参数的构造函数,
New的又是没有参数的
当然不对了。
zcy0602 2014-11-24
  • 打赏
  • 举报
回复
引用 1 楼 shenshen123jun 的回复:
很明显,没有默认的构造方法,Votepart类中添加public VotePart(){}
有的,你可以看看上面我有发Votepart类的代码。

67,541

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧