问题描述
作业做的是个投票软件,遇到的问题如下图,代码在下面。一直没办法解决希望有人能帮帮忙……谢谢了!publicclassDemo{publicstaticvoidmain(String[]args){newVotePart();}}
publicclassStudent{privateintNo;privateStringname;protectedintvote;publicStudent(intNo,Stringname,intvote){this.setNo(No);this.setName(name);this.setVote(vote);}publicintgetNo(){returnNo;}publicvoidsetNo(intno){No=no;}publicStringgetName(){returnname;}publicvoidsetName(Stringname){this.name=name;}publicintgetVote(){returnvote;}publicvoidsetVote(intvote){this.vote=vote;}publicStudentstu[]={newStudent(1,"张三",0),newStudent(2,"李四",0),newStudent(3,"王五",0),newStudent(4,"赵六",0)};}
importjava.util.Arrays;importjava.util.Scanner;publicclassVotePartextendsStudent{publicVotePart(intNo,Stringname,intvote){super(No,name,vote);}publicvoidprint(){for(inti=0;i<super.stu.length;i++){System.out.println(super.stu[i].getNo()+":"+super.stu[i].getName()+"【"+super.stu[i].getVote()+"】");}}publicvoidvote(){booleanflag=false;for(;!flag;){Scannersc=newScanner(System.in);System.out.println("请输入班长候选人代号(数字0结束):");intid=sc.nextInt();switch(id){case0:{flag=true;break;}case1:{super.stu[0].setVote(super.stu[0].getVote()+1);break;}case2:{super.stu[1].setVote(super.stu[1].getVote()+1);break;}case3:{super.stu[2].setVote(super.stu[2].getVote()+1);break;}case4:{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()+"票当选班长!");}}
解决方案
解决方案二:
很明显,没有默认的构造方法,Votepart类中添加publicVotePart(){}
解决方案三:
引用1楼shenshen123jun的回复:
很明显,没有默认的构造方法,Votepart类中添加publicVotePart(){}
有的,你可以看看上面我有发Votepart类的代码。
解决方案四:
你写的是带2个参数的构造函数,New的又是没有参数的当然不对了。
解决方案五:
引用3楼yuejian的回复:
你写的是带2个参数的构造函数,New的又是没有参数的当然不对了。
可以告诉我怎么改吗?谢谢啦
解决方案六:
要么在new VotePart();中添加参数,要么在VotePart{}类中添加无参构造,总之保证在类VotePart{}中有你要调用的构造函数就行
解决方案七:
改成:newVotePart(1,"我是name",1);你构造函数是publicVotePart(intNo,Stringname,intvote),用的时候newVotePart(),你觉得能对么