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

问题描述

作业做的是个投票软件,遇到的问题如下图,代码在下面。一直没办法解决希望有人能帮帮忙……谢谢了!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(),你觉得能对么

时间: 2024-09-17 04:53:29

主函数里遇到构造函数未定义怎么解决?的相关文章

前端-js如何给匿名函数里的构造函数传参?

问题描述 js如何给匿名函数里的构造函数传参? (function() { function Fun(name) { this.name = name; } Fun.prototype.say = function() { console.log(this.name); } fun = new Fun(); })(); 想在这里调用,并传参数进去??? fun.say('qwe') 解决方案 (function(name) { function Fun(name) { this.name = n

全局变量-在逆置单向链表的主函数里

问题描述 在逆置单向链表的主函数里 为什么我写 int main() { showlist (creat()); showlist (reverse(head)); }正常 然而 int main() { showlist (creat()); reverse(head) showlist (head)); }只输出表头一个数 showlist是输出链表所有数的函数 creat 创建链表 reverse逆置函数原型ex* reverse(ex *head) 因为我的head是全局变量 所以我觉得

参数-主函数里的变量、对象怎么传递给线程

问题描述 主函数里的变量.对象怎么传递给线程 如题,主函数里的变量.对象怎么传递给子线程,设置全局变量这种不要说,要的就是传值,全局变量不能解决所有问题. 如果可以给个小实例程序说明一下最好啦,谢谢~ 解决方案 在创建线程的时候,传输参数,好好看看线程函数的声明,你就懂了.

android-安卓开发可以在主函数里通过代码更改布局文件控件的图标吗

问题描述 安卓开发可以在主函数里通过代码更改布局文件控件的图标吗 不知道行不行 在线等 解决方案 控件的图标?什么控件 解决方案二: 理论上是可以的,实践上应该也是可以的 解决方案三: 完全可以啊 .得看你是什么控件了.怎么控制看API .

java-要做咖啡机界面,我的代码怎么实现在主函数里接收右面板

问题描述 要做咖啡机界面,我的代码怎么实现在主函数里接收右面板 这是右面板: public class RightPanel extends JPanel{ JPanel p1 = new JPanel(); JPanel p2 = new JPanel(); static JPanel p3 = new JPanel(); JButton b1,b2,b3,b4,b5,b6,b7; static JPanel rp=null; private RightPanel(){ this.setLay

关于“FCKeditorAPI”未定义的解决方法,供碰到相同问题的TX参考

问题描述 这两天写页面的时候用到了FCKEditor编辑器,导入和配置都没有任何问题,但是在检测文本框是否为空的时候出现了问题.我原来用的代码是:varfck=FCKeditorAPI.GetInstance("content");varcontent=fck.GetXHTML();if(content==""){alert("内容不能为空!");fck.Focus();returnfalse;}结果用javascript调试器一直会报"

Asp.net Ajax 中的脚本错误: Sys未定义 的解决方法

ajax|asp.net|错误|脚本|解决         提前祝大家新年好!前段时间日夜赶工,终于按计划推出了项目的新版本.今天终于有时间写点东西了.         前段时间公司同事在项目中引入了Asp.net Ajax (beta1)版. 用着用着,在查看网页时,不时报 'Sys'未定义 的错误.按照网上的办法对web.confg 做了一翻手术,一点效果也没有.想想也对,web.config跟本没改动过,凭什么突然就把问题都算在人家头上?经过一翻摸索后,突然发现,原来是身份验证惹的祸.在配

IE6下Ms Ajax Lib 调用Ajaxtoolkit时Common_InvalidPaddingUnit未定义的解决方法

IE6下Ms Ajax Lib 调用Ajaxtoolkit时Common_InvalidPaddingUnit未定义总是显示未定义 究其原因在于中文的资源文件 ScriptResources.zh-CHS.resx并未对Common_InvalidPaddingUnit进行定义,所以只能强行将Common.js中的Common_InvalidPaddingUnit改为'A unit type of "{0}" is invalid for parsePadding' 即可解决.

Ajax.net Sys未定义错误解决办法_实用技巧

查了很多处理日志,说的都是在Web.Config里面加什么语句,就是下面这些: 复制代码 代码如下: < httpHandlers> < remove verb="*" path="*.asmx"/> < add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.Scrip