石大远程Java语言程序设计在线考试第二题_第1页
石大远程Java语言程序设计在线考试第二题_第2页
石大远程Java语言程序设计在线考试第二题_第3页
石大远程Java语言程序设计在线考试第二题_第4页
石大远程Java语言程序设计在线考试第二题_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、精选文库 中国石油大学(北京)远程教育学院期末考试Java语言程序设计学习中心:通州_姓名:_程潇学号:_117910_一、简答题1什么是多态性?方法的重载和覆盖有何区别?阅读下列代码,指出其中存在的重载和覆盖,写出输出结果是什么?解释为什么这样输出?(15分)classClass1publicvoidfind()System.out.println(Class1.find);classClass2extendsClass1publicvoidfind()System.out.println(Class2.find);classClass3publicvoidget(Class1one)Sys

2、tem.out.println(get(Class1);one.find();publicvoidget(Class2two)System.out.println(get(Class2);two.find();publicclassTest1publicstaticvoidmain(Stringargs)Class1one=newClass2();Class3three=newClass3();three.get(one);1什么是多态性?方法的重载和覆盖有何区别?阅读下列代码,指出其中存在的重载和覆盖,写出输出结果是什么?解释为什么这样输出?(15分)多态性:指允许不同类的对象对同一消息做出

3、响应。即同一消息可以根据发送对象的不同而采用多种不同的行为方式。(发送消息就是函数调用)方法的重载和覆盖的区别:重载publicvoidprintln(inti);publicvoidprintln(charc);publicvoidprintln(Strings);覆盖publicclassEmployeeStringname;intsalary;publicStringgetDetails()returnName:+name+n+Salary:+salary;publicclassManagerextendsEmployeeStringdepartment;/*方法的覆盖*/publicS

4、tringgetDetails()returnName:+name+n+Managerof+department;publicvoidtest()/调用父类的方法,怎么办?System.out.println(super.getDetails();publicstaticvoidmain(Stringargs)Managerm=newManager();System.out.println(m.getDetails();(1)方法的覆盖是子类和父类之间的关系,是垂直关系;方法的重载是同一个类中方法之间的关系,是水平关系。(2)覆盖只能由一个方法,或只能由一对方法产生关系;方法的重载是多个方法之

5、间的关系。(3)覆盖要求参数列表相同;重载要求参数列表不同。(4)覆盖关系中,调用那个方法体,是根据对象的类型(对象对应存储空间类型)来决定重载关系,是根据调用时的实参表与形参表来选择方法体的。Class1和class2中都有的find方法,其中class2就是继承了class1的find方法就是覆盖而class3有两个get方法因为入参不一样就是重载get(Class1)Class2.findOne是class1对象所以输出publicvoidget(Class1one)因为class2覆盖了class1所以输出class2find函数2、请说说final、finally的区别和作用,举例说

6、明用法;另外用自己的语言介绍throw/throws有什么联系和区别?在程序中应如何使用?(15分)final可以修饰类,成员变量,局部变量和方法。1.final修饰成员变量final成员变量的初始化对于final修饰的变量,系统不会默认初始化为0fina变量初始化方式:在定义的时候初始化final变量可以在初始化块中初始化,不可以在静态初始化块中初始化。静态final变量可以在静态初始化块中初始化,不可以在初始化块中初始化。fina变量还可以在构造函数中初始化,但是静态final变量不可以。final修饰方法当final用来修饰方法时,表示这个方法不可以被子类覆盖。final修饰类final

7、修饰的列不允许被继承,编译器在处理时把它的所有方法都当作final的,因此final类比普通类拥有更高的效率。而由关键字abstract定义的抽象列含有必须由继承自它的子类重载实现的抽象方法,因此无法同时用final和abstract来修饰同一个类。同样的道理,final也不能用来修饰接口。final的类的方法都不能被重写。但这并不表示final的类的属性值也是不可改变的。要想做到final类的属性值不可改变,必须给他增加final修饰符。finally语句只能用于try/catch语句中,并且附带着一个语句块,表示这段语句最终总是被执行。复制代码代码如下:publicclassTestpub

8、licstaticvoidmain(Stringargs)System.out.println(returnTest();/falsepublicstaticbooleanreturnTest()tryreturntrue;finallyreturnfalse;先计算return后面的表达式的值,将值临时存储起来,然后计算finally里的return后的表达式值,算出后也会临时存储,此时就会把之前存储的值给覆盖掉。最后,回到前一个return处,从临时存储变量的地方把值拿出来,返回。即得到了这样的结果。throw/throws有什么联系和区别仔细一看就知道了:publicTest()thro

9、wsRepletExceptiontrySystem.out.println(TestthisProject!)catch(Exceptione)thrownewException(e.toString();throws是用来声明一个方法可能抛出的所有异常信息throw则是指抛出的一个具体的异常类型。通常在一个方法(类)的声明处通过throws声明方法(类)可能抛出的异常信息,而在方法(类)内部通过throw声明一个具体的异常信息。throws通常不用显示的捕获异常,可由系统自动将所有捕获的异常信息抛给上级方法;throw则需要用户自己捕获相关的异常,而后在对其进行相关包装,最后在将包装后的异

10、常信息抛出。3、编写一个描述老师基本情况的类,属性包括姓名,教工号,基本工资,岗位工资和绩效工资,方法包括信息输出,设置姓名和教工号,设置三种工资金额,计算总工资(三种工资加起来)和税后工资(按如下方式计算,3000以内不收税,3000-5000之间的部分扣10%,大于5000的部分扣15%)。在main方法中对方法进行测试(15分)publicclasssalaryStringname;inttnum;doublebsalary;doublegsalary;doublejsalary;doubleallsalary;publicStringgetName()returnname;public

11、voidsetName(Stringname)=name;publicintgetTnum()returntnum;publicvoidsetTnum(inttnum)this.tnum=tnum;publicdoublegetBsalary()returnbsalary;publicvoidsetBsalary(doublebsalary)this.bsalary=bsalary;publicdoublegetGsalary()returngsalary;publicvoidsetGsalary(doublegsalary)this.gsalary=gsalary;publicdoubleg

12、etJsalary()returnjsalary;publicvoidsetJsalary(doublejsalary)this.jsalary=jsalary;publicdoublegetAllsalary()returnallsalary;publicvoidsetAllsalary(doubleallsalary)this.allsalary=allsalary;doublepublicsalary(String_name,int_tnum,double_bsalary,gsalary,double_jsalary)=_name;this.tnum=_tnum;this.bsalary

13、=_bsalary;this.gsalary=_gsalary;this.jsalary=_jsalary;System.out.println(this.toString();OverridepublicStringtoString()returnsalaryname=+name+,tnum=+tnum+,bsalary=+bsalary+,gsalary=+gsalary+,jsalary=+jsalary+;publicdoublegetall(salary_salary)allsalary=_salary.bsalary+_salary.gsalary+_salary.jsalary;

14、if(allsalary3000&allsalary5000)allsalary=(allsalary-5000)*0.85+2000*0.9+3000;returnallsalary;publicstaticvoidmain(Stringargs)salarys=newsalary(杨松运,098014,3500,1000,2000);System.out.println(税后薪水:+s.getall(s);anelssif(allsalar3aOD“allsalaryC=5000|i32all3alarv=(allsalary-30QO)0、E+3000:83Jelseif(allsala

15、zy5(005-:allaffllflzy-(all5ffilfflzy-5000)*0.05-+2000*0日+3000;97iretinriiallsaiary;909il1021039fipoblic号七aticvoidnsain(51rijigIarg5Mlazytcnchtr-r.cwau二mhy(3击务,r:2H0r_u:0,ZQZ0Udoubleendsalary=teachez:getall(ceachei);System-out.pxintln老师:税后藕朮:Wendaalaxy;:_Problems唾Javadoc正.Declaraticun$SearchISConsole

16、S3rterminatedalaiyJavaApplicationDfd-msjdk1l.B.D_111binja/aw.exe(2百19年1月幽三下牛salaiy:nmmm=陈东.tnuni=5+a);synchronizedvoidadd1()a=a+40;System.out.println(Thread.currentThread().getName()+inc-40-+a);synchronizedvoidmul()a=a*10;System.out.println(Thread.currentThread().getName()+mul-10-+a);synchronizedvoi

17、dmul1()a=a*20;System.out.println(Thread.currentThread().getName()+mul-20-+a);publicstaticvoidmain(Stringargs)Fourfour=newFour();Threadt=newThread(newTest1(four);t.start();t=newThread(newTest2(four);t.start();t=newThread(newTest3(four);t.start();t=newThread(newTest4(four);t.start();二、编程题1、编写一个图形用户界面程

18、序,包含两个按钮,一个信息标签(label)和一个显示面板,两个按钮分别为“掷色子”和“移动”,在显示面板中显示一个小汽车(用小圆矩形以及线绘制),随机设定小汽车的初始位置,当点击“掷色子”按钮,随机产生移动信息(上移下移,左移,右移,移动几步),并显示在信息标签中,点击移动,按照产生的移动信息,让小汽车进行移动。要求提供完整程序代码以及运行结果截图(20分)packagetestsc.testdc.entity;importjava.awt.Color;importjava.awt.Graphics;importjavax.swing.JButton;importjavax.swing.JF

19、rame;importjavax.swing.JLabel;importjavax.swing.JPanel;publicclasscarmoveextendsJFrameprivatestaticfinallongserialVersionUID=1L;carmove()TrafficPaneltp=newTrafficPanel();JButtonbtnl=newJButton(移动);JLabellab1=newJLabel();JLabellab2=newJLabel();btn1.setBounds(0,100,50,20);lab1.setBounds(90,100,30,20);

20、lab2.setBounds(180,200,150,20);tp.add(btn1);tp.add(lab1);tp.add(lab2);lab2.setText(刘福战);this.add(tp);/this.setResizable(false);this.setSize(500,500);/this.setLocationRelativeTo(null);/this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.setVisible(true);Threadt=newThread(tp);t.start();publicstat

21、icvoidmain(Stringargs)newcarmove();classTrafficPanelextendsJPanelimplementsRunnableintx=125,y=250,direct=0;intspeed=1;intt1=0;intt2=0;publicvoidpaint(Graphicsg)super.paint(g);drawCar(x,y,g,direct);publicvoiddrawCar(intx,inty,Graphicsg,intdirect)switch(direct)case0:g.setColor(Color.black);g.fillRect(

22、x-20,y-10,40,20);g.fillOval(x-15,y+10,10,10);g.fillOval(x+5,y+10,10,10);break;case1:g.setColor(Color.black);g.fillRect(x-10,g.fillOval(x-20,g.fillOval(x-20,break;y-10,20,40);y-5,10,10);y+15,10,10);Overridepublicvoidrun()精选文库精选文库 l3while(true)tryThread.sleep(50);catch(Exceptione)x+=t1;y+=t2;if(x125&2

23、50&direct0)t1speed;t20;direct0;elseif(x250&250&direct0)t10;t2speed;direct1;elseif(x250&440&direct1)t10;t2-speed;direct1;elseif(x250&250&direct1)t1-speed;t20;direct0;repaint();2、编写一个班级推优(三好生)投票管理程序。列出参与推优的学生名单(8名),可以勾选进行投票,要求每个参选学生前面有图标表示候选人的性别,每人可以投4名候选人每次投票后能够显示当前投票人数以及每名候选者得票数,图形化柱状图显示得票数,可以保存投票结果

24、到文本文件。要求提供完整程序代码以及运行结果截图(20分)importjava.awt.*;importjava.awt.Event.*;importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;importjava.awt.event.ItemEvent;importjava.awt.event.ItemListener;importjava.awt.event.WindowAdapter;importjava.awt.event.WindowEvent;importjava.io.BufferedWriter;

25、importjava.io.FileWriter;importjava.io.IOException;importjava.util.StringTokenizer;importjavax.swing.*;publicclassVoteTestextendsJFrameimplementsActionListener,ItemListenerstaticVoteTestfrm=newVoteTest();staticSavesa=newSave();staticJLabellabl=newJLabel(总人数:);staticJLabellab2=newJLabel(最高票数选手:);stat

26、icJLabellab3=newJLabel(最高票数:);staticJDialogdg=newJDialog();staticJLabellab4=newJLabel();staticJLabellab5=newJLabel();staticJLabellab6=newJLabel();staticJLabellab7=newJLabel();staticJLabellab8=newJLabel();staticJLabellab9=newJLabel();staticJLabellabl0=newJLabel();staticJLabellabll=newJLabel();staticJ

27、Labellabl2=newJLabel();staticJLabellabl3=newJLabel();staticJButtonbtnl=newJButton(提交);staticJButtonbtn2=newJButton(下一位投票);staticJButtonbtn3=newJButton(保存);staticJButtonbtn4=newJButton(取消);staticTextFieldtfl=newTextField(,5);staticTextFieldtf2=newTextField(,l5);staticTextFieldtf3=newTextField(,5);sta

28、ticJCheckBoxjbl=newJCheckBox(陈明茂);staticJCheckBoxjb2=newJCheckBox(张三);staticJCheckBoxjb3=newJCheckBox(李四);staticJCheckBoxjb4=newJCheckBox(王五);staticJCheckBoxjb5=newJCheckBox(张三丰);staticJCheckBoxjb6=newJCheckBox(乔峰);staticJCheckBoxjb7=newJCheckBox(萧十一郎);staticJCheckBoxjb8=newJCheckBox(王老吉);staticJChe

29、ckBoxjb9=newJCheckBox(费德南);staticJCheckBoxjb10=newJCheckBox(林无敌);staticJPanelpanl=newJPanel();staticJPanelpan2=newJPanel();staticJPanelpan3=newJPanel();staticJPanelpan4=newJPanel();staticintcount=0;staticintcountl=0;staticintxl=l00,x2=l00,x3=l00,x4=l00,x5=l00,x6=l00,x7=l00,x8=l00,x9=l00,xl0=l00;stat

30、icinty=250;staticintz=250;/*paramargs*/publicstaticvoidmain(Stringargs)/TODO自动生成方法存根BorderLayoutbr=newBorderLayout();frm.setLayout(br);frm.addWindowListener(sa);frm.setTitle(投票计数器“);frm.add(pan1,br.NORTH);pan1.setBounds(0,0,500,10);pan1.add(lab1);pan1.add(tf1);pan1.add(lab2);pan1.add(tf2);pan1.add(l

31、ab3);pan1.add(tf3);frm.add(pan2,br.WEST);GridLayoutgl=newGridLayout(10,1,0,3);pan2.setLayout(gl);pan2.add(jb1);pan2.add(jb2);pan2.add(jb3);pan2.add(jb4);pan2.add(jb5);pan2.add(jb6);pan2.add(jb7);pan2.add(jb8);pan2.add(jb9);pan2.add(jb10);frm.add(pan3,br.SOUTH);pan3.setBounds(150,450,10,10);pan3.add(

32、btn1);pan3.add(btn2);pan3.add(btn3);pan3.add(btn4);frm.add(pan4,br.EAST);GridLayoutgl1=newGridLayout(10,1,0,3);pan4.setLayout(gl1);pan4.add(lab4);lab4.setForeground(newColor(0,0,255);pan4.add(lab5);lab5.setForeground(newColor(0,0,255);pan4.add(lab6);lab6.setForeground(newColor(0,0,255);pan4.add(lab7

33、);lab7.setForeground(newColor(0,0,255);精选文库精选文库 pan4.add(lab8);lab8.setForeground(newColor(0,0,255);pan4.add(lab9);lab9.setForeground(newColor(0,0,255);pan4.add(lab10);lab10.setForeground(newColor(0,0,255);pan4.add(lab11);lab11.setForeground(newColor(0,0,255);pan4.add(lab12);lab12.setForeground(newC

34、olor(0,0,255);pan4.add(lab13);lab13.setForeground(newColor(0,0,255);frm.setSize(500,400);frm.setLocation(400,300);/frm.setDefaultCloseOperation(EXIT_ON_CLOSE);frm.setVisible(true);frm.setResizable(false);tf1.setEditable(false);tf2.setEditable(false);tf3.setEditable(false);btn1.addActionListener(frm)

35、;btn2.addActionListener(frm);btn3.addActionListener(frm);btn4.addActionListener(frm);jb1.addItemListener(frm);jb2.addItemListener(frm);jb3.addItemListener(frm);jb4.addItemListener(frm);jb5.addItemListener(frm);jb6.addItemListener(frm);jb7.addItemListener(frm);jb8.addItemListener(frm);jb9.addItemList

36、ener(frm);jb10.addItemListener(frm);btn1.setEnabled(false);staticclassSaveextendsWindowAdapterpublicvoidwindowClosing(WindowEvente)dg.setTitle(保存文件?);dg.setSize(200,100);dg.add(btn3);dg.add(btn4);dg.setLayout(newFlowLayout(FlowLayout.CENTER,5,30);dg.setLocation(400,300);dg.setVisible(true);publicvoi

37、ditemStateChanged(ItemEvente)if(count10)/每个人至少投两个人btn1.setEnabled(true);elsebtn1.setEnabled(false);if(count15)/此投票计数器一个人只能投四票if(jb1.isSelected()count1+;jb1.setEnabled(true);if(jb2.isSelected()count1+;jb2.setEnabled(true);if(jb3.isSelected()count1+;jb3.setEnabled(true);if(jb4.isSelected()count1+;jb4.

38、setEnabled(true);if(jb5.isSelected()count1+;jb5.setEnabled(true);if(jb6.isSelected()count1+;jb6.setEnabled(true);if(jb7.isSelected()count1+;jb7.setEnabled(true);if(jb8.isSelected()count1+;jb8.setEnabled(true);if(jb9.isSelected()count1+;jb9.setEnabled(true);if(jb10.isSelected()count1+;jb10.setEnabled

39、(true);elsecount1=0;if(jb1.isSelected()jb1.setEnabled(true);elsejb1.setEnabled(false);if(jb2.isSelected()jb2.setEnabled(true);elsejb2.setEnabled(false);if(jb3.isSelected()jb3.setEnabled(true);elsejb3.setEnabled(false);if(jb4.isSelected()jb4.setEnabled(true);elsejb4.setEnabled(false);if(jb5.isSelecte

40、d()jb5.setEnabled(true);elsejb5.setEnabled(false);if(jb6.isSelected()jb6.setEnabled(true);elsejb6.setEnabled(false);if(jb7.isSelected()jb7.setEnabled(true);elsejb7.setEnabled(false);if(jb8.isSelected()jb8.setEnabled(true);elsejb8.setEnabled(false);if(jb9.isSelected()jb9.setEnabled(true);elsejb9.setE

41、nabled(false);if(jb10.isSelected()jb10.setEnabled(true);elsejb10.setEnabled(false);publicvoidactionPerformed(ActionEvente)JButtonbtn=(JButton)e.getSource();if(btn=btn1)btn1.setEnabled(false);count+;tf1.setText(+count);Graphicsg=getGraphics();g.setColor(Color.RED);if(jb1.isSelected()g.fillRect(x1,70,

42、1,15);x1+;if(jb2.isSelected()g.fillRect(x2,98,1,15);x2+;if(jb3.isSelected()g.fillRect(x3,126,1,15);x3+;if(jb4.isSelected()g.fillRect(x4,158,1,15);x4+;if(jb5.isSelected()g.fillRect(x5,188,1,15);x5+;if(jb6.isSelected()g.fillRect(x6,218,1,15);x6+;if(jb7.isSelected()g.fillRect(x7,y,1,15);x7+;if(jb8.isSe

43、lected()g.fillRect(x8,278,1,15);x8+;if(jb9.isSelected()g.fillRect(x9,308,1,15);x9+;if(jb10.isSelected()g.fillRect(x10,338,1,15);x10+;intarray=x1-100,x2-100,x3-100,x4-100,x5-100,x6-100,x7-100,x8-100,x9-100,x10-100;lab4.setText(array0+票);lab5.setText(array1+票);lab6.setText(array2+票);lab7.setText(array

44、3+票);lab8.setText(array4+票);lab9.setText(array5+票);lab10.setText(array6+票);lab11.setText(array7+票);lab12.setText(array8+票);lab13.setText(array9+票);java.util.Arrays.sort(array);tf3.setText(+array9);if(array9=(x1-100)tf2.setText(“陈明茂“);if(array9=(x2-100)tf2.setText(张三“);if(array9=(x3-100)tf2.setText(李

45、四“);if(array9=(x4-100)tf2.setText(王五);if(array9=(x5-100)tf2.setText(张三丰“);if(array9=(x6-100)tf2.setText(乔峰);if(array9=(x7-100)tf2.setText(萧十一郎”);if(array9=(x8-100)tf2.setText(王老吉);if(array9=(x9-100)tf2.setText(费得南);if(array9=(x10-100)tf2.setText(林无敌);if(array9=array8|array9=array7|array9=array6|arra

46、y9=array5|array9=array4|array9=array3|array9=array2|array9=array1|array9=array0)tf2.setText(并立第一,请看图!);if(jb1.isSelected()jb1.setEnabled(true);elsejb1.setEnabled(false);if(jb2.isSelected()jb2.setEnabled(true);elsejb2.setEnabled(false);if(jb3.isSelected()jb3.setEnabled(true);elsejb3.setEnabled(false)

47、;if(jb4.isSelected()jb4.setEnabled(true);elsejb4.setEnabled(false);if(jb5.isSelected()jb5.setEnabled(true);elsejb5.setEnabled(false);if(jb6.isSelected()jb6.setEnabled(true);elsejb6.setEnabled(false);if(jb7.isSelected()jb7.setEnabled(true);elsejb7.setEnabled(false);if(jb8.isSelected()jb8.setEnabled(t

48、rue);elsejb8.setEnabled(false);if(jb9.isSelected()jb9.setEnabled(true);elsejb9.setEnabled(false);if(jb10.isSelected()jb10.setEnabled(true);elsejb10.setEnabled(false);elseif(btn=btn2)jb1.setSelected(false);jb2.setSelected(false);jb3.setSelected(false);jb4.setSelected(false);jb5.setSelected(false);jb6.setSelected(false);jb7.setSelected(f

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论