JAVA程序设计实验报告Word格式文档下载.docx

上传人:b****3 文档编号:17336402 上传时间:2022-12-01 格式:DOCX 页数:34 大小:114.11KB
下载 相关 举报
JAVA程序设计实验报告Word格式文档下载.docx_第1页
第1页 / 共34页
JAVA程序设计实验报告Word格式文档下载.docx_第2页
第2页 / 共34页
JAVA程序设计实验报告Word格式文档下载.docx_第3页
第3页 / 共34页
JAVA程序设计实验报告Word格式文档下载.docx_第4页
第4页 / 共34页
JAVA程序设计实验报告Word格式文档下载.docx_第5页
第5页 / 共34页
点击查看更多>>
下载资源
资源描述

JAVA程序设计实验报告Word格式文档下载.docx

《JAVA程序设计实验报告Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《JAVA程序设计实验报告Word格式文档下载.docx(34页珍藏版)》请在冰豆网上搜索。

JAVA程序设计实验报告Word格式文档下载.docx

//Interfaceclass.classx=newInterfaceclass.class();

不能对接口进行实例化

UseInterfacex=newUseInterface();

x.func1();

x.func2(k);

⒉多态在工资系统中的应用

下面给出一个根据雇员类型利用abstract方法和多态性完成工资单计算的程序。

Employee是抽象类,Employee的子类有Boss(每星期发给他固定工资,而不计工作时间)、CommissionWorker(除基本工资外还根据销售额发放浮动工资)、PieceWorker(按其生产的产品数发放工资)、HourlyWorker(根据工作时间长短发放工资)。

该例的Employee的每个子类都声明为final,因为不需要再继承它们生成子类。

对所有雇员类型都使用earnings()方法,但每个人挣的工资按他所属的雇员类计算,所有雇员类都是从超类Earnings()派出生的。

所有在超类中声明earnings()为抽象方法,并且对于每个子类都提供恰当的earnings()的实现方法。

为了计算雇员的工资,程序仅仅使用雇员对象的一个超类引导并调用earnings()方法。

在一个实际的工资系统中,各种Employee对象的引用可以通过一个Employee引用数组来实现。

程序依次使用数组的每个元素(Employee引用)调用每个对象的employee()方法。

(1)编辑Test.java,设保存在D:

abstractclassEmployee

{

privateStringfirstName;

privateStringlastName;

publicEmployee(Stringfirst,Stringlast)

firstName=first;

lastName=last;

}

publicStringgetEmployeeName()

returnfirstName;

publicStringgetLastName()

returnlastName;

publicStringtoString()

returnfirstName+lastName;

publicabstractStringearnings();

//定义Boss类,为Employee的子类

finalclassBossextendsEmployee

privatedoubleweeklySalary;

publicBoss(Stringfrist,Stringlast,doubles)

super(frist,last);

setWeeklySalary(s);

publicvoidsetWeeklySalary(doubles)

weeklySalary=(s>

0?

s:

0);

publicStringearnings()

return"

Boss"

+super.toString();

//定义CommissiomWorker类,为Employee的子类

finalclassCommissionWorkerextendsEmployee

privatedoublesalary;

privatedoublecommission;

privateintquantity;

publicCommissionWorker(Stringfirst,Stringlast,doubles,doublec,intq)

super(first,last);

setSalary(s);

setCommission(c);

setQusntily(q);

/*publicStringearnings()

}*/

publicvoidsetQusntily(doubles)

salary=(s>

publicdoublesetCommission(doublec)

returncommission=(c>

c:

doublei=salary+commission+quantity;

returnDouble.valueOf(i).toString();

publicStringtoString()

return"

CommissionWorker"

publicvoidsetSalary(doubles)

salary=s;

//定义PieceWorker类,为Employee的子类

finalclassPieceWorkerextendsEmployee

privatedoublewagePiece;

privateintquantity;

publicPieceWorker(Stringfirst,Stringlast,doublew,intq)

setWage(w);

setQuantity(q);

publicvoidsetWage(doublew)

wagePiece=(w>

w:

publicdoublesetQuantity(intq)

returnq+wagePiece;

return"

PieceWoeker"

returnDouble.valueOf(wagePiece+quantity).toString();

//定义HourlyWorker类,为Employee的子类

classHourlyWorkerextendsEmployee

privatedoublewage;

privatedoublehours;

publicHourlyWorker(Stringfirst,Stringlast,doublew,doubleh)

setHours(h);

publicvoidsetWage(doublew)

wage=(w>

publicvoidsetHours(doubleh)

hours=(h>

=0&

&

h<

168?

h:

publicStringearnings()

HourlyWorker"

classText

publicstaticvoidmain(Stringargs[])

//使用超类声明ref

Employeeref;

Stringout="

"

;

//分别定义各子类

Bossb=newBoss("

Hohn"

"

Smith"

800.00);

CommissionWorkerc=newCommissionWorker("

Sue"

Hones"

400.00,3.0,150);

PieceWorkerp=newPieceWorker("

Bob"

Lewis"

2.5,200);

HourlyWorkerh=newHourlyWorker("

Karen"

price"

13.75,40);

//使用子类分别实例化

ref=b;

out+=ref.toString()+"

earned$"

+ref.earnings()+"

\n"

+b.toString()+"

+b.earnings()+"

System.out.print(out);

ref=c;

+c.toString()+"

+c.earnings()+"

ref=p;

+p.toString()+"

+p.earnings()+"

ref=h;

+h.toString()+"

+h.earnings()+"

⒊包的建立与使用

(1)编辑Calculate.java,设保存在D:

packagemypackage;

publicclassCalculate

privateinta;

publicCalculate(inta)

{this.a=a;

fromconstrartion"

+this.a);

publicdoublevolume(doubleheight,doublewidth,doubledepth)

returnheight*width*depth;

intadd(intx,inty)

returnx+y;

protectedvoida()

System.out.println("

fromconstration"

+a);

编译,查看D:

\myjava目录下是否生成了myoackage文件夹,在该文件夹中是否有Calculate.class文件。

(2)编辑Interfaceclass.java,设保存在D:

importmypackage.Calculate;

classPackageDemo

publicstaticvoidmain(stringags[])

Calculatec=newCalculate(10);

doubles=c.volume(5,6,7);

System.out.println(s);

//intb=c.add(5,6);

//c.a();

五、实验结果

实验二、异常处理实验

一、实验目的

⒈异常的生产及捕获

⒉自定义异常及其使用

面向对象的基本知识

⒈异常的捕获

计算两数相除并输出结果。

使用两个catch子句,分别捕捉除数为0的异常和参数输入有误异常。

编辑Ex1.java,保存在D:

myjava目录下。

importjava.io.*;

classEx1

publicstaticvoidmain(Stringargs[])

try{

BufferedReaderstrin=newBufferedReader(

newInputStreamReader(System.in));

System.out.print("

请输入除数:

);

Stringcl=strin.readLine();

inta=Integer.parseInt(cl);

System.out.print("

请输入被除数:

cl=strin.readLine();

intb=Integer.parseInt(cl);

intc=b/a;

System.out.println("

商为:

+c);

//捕获与I/O有关的异常

catch(IOExceptione){e.printStackTrace();

//捕获数值转化时的异常,如不能将字符转化成数值

catch(NumberFormatExceptione){

请输入整数!

//e.printStackTrace();

//捕获除数为0的异常

catch(ArithmeticExceptione){

除数不可以0!

//e.printstackTrace();

编译并运行,当输入除数为0时,将有异常出现,当输入的不是整数时,如将30输成了3o,出现的是另一种异常。

⒉定义异常

编写程序包含自定义异常,当输入数值为13和4时抛出该异常。

编辑Ex2.java,设保存在D:

classEx2extendsException

Ex2(Stringmsg)

super(msg);

classMyEx

privateintx;

voidsetX(intx)

this.x=x;

voidf1()throwsEx2

if(x==13)

thrownewEx2("

Idon'

tlike13!

elseif(x==4)

tlike4!

else

System.out.println(100/x);

MyExa=newMyEx();

try

a.setX(5);

//a.setX(13);

//a.setX(4);

//a.setX(0);

a.f1();

catch(Exceptione)

getmessage:

+e.getMessage());

编译并运行,分别取消注释上面程序中被注释的语句。

当释放a.setX(13)语句后,查看运行结果,当释放a.setX(4)语句后,查看运行结果。

实验三、GUI(图形用户接口)实验

⒈掌握用MouseListener和MouseMotionListener接口处处理鼠标事件MouseEvent的方法。

⒉掌握制作菜单及处理菜单事件的方法

⒊掌握创建对话框及定位、显示、激活和关闭对话框的方法

图形用户接口编程所需的基本类及使用方法

⒈制作一个简单的画板

编辑Mou.java,设保存在D:

importjava.applet.*;

importjava.awt.*;

importjava.awt.event.*;

publicclassMouextendsAppletimplementsMouseMotionListener

intx=-1,y=-1;

publicvoidinit()

setBackground(Color.cyan);

addMouseMotionListener(this);

publicvoidpaint(Graphicsg)

if(x!

=-1&

y!

=-1)

g.setColor(Color.red);

g.drawLine(x,y,x,y);

publicvoidmouseDragged(MouseEvente)

x=(int)e.getX();

y=(int)e.getY();

publicvoidmouseMoved(MouseEvente){}//由于使用的是Listener,需要将其他不重载的方//法,列举在这里

publicvoidupdate(Graphicsg)

paint(g);

publicstaticvoidmain(String[]args)

Moumou=newMou();

mou.setVisible(true);

mou.init();

mou.paint()

编译并运行查看结果.

⒉菜单的编写

编辑TestMenu.java,设保存在D:

importjava.awt.event.ItemEvent;

classMyMenhFrameextendsFrameimplementsActionListener,ItemListener

MenuBarm_MenuBar;

MenumenuFile,menuEdit,m_Edit_Paste;

MenuItemmi_File_Open,mi_File_Close,mi_File_Exit,mi_Edit_Copy;

MenuItempi_New,pi_Del,pi_Pro,mi_Paste_All,mi_Paste_Part;

CheckboxMenuItemmi_Edit_Cut;

PopupMenupopM;

TextAreata;

publicvoiditemStateChanged(ItemEvente)

MyMenhFrame()

super("

拥有菜单的窗口"

//指定窗口标题

ta=newTextArea("

nochoice"

5,20);

ta.addMouseListener(newHandleMouse(this));

//文本域响应鼠标事件

add("

Center"

ta);

//创建弹出式菜单

popM=newPopupMenu();

pi_New=newMenuItem("

新建"

pi_New.addActionListener(this);

popM.add(pi_New);

pi_Del=newMenuItem("

删除"

pi_Del.addActionListener(this);

popM.add(pi_Del);

pi_Pro=newMenuItem("

属性"

pi_Pro.addActionListener(this);

popM.add(pi_Pro);

//将弹出式菜单加在文本域上

ta.add(popM);

m_MenuBar=newMenuBar();

//创建菜单栏

menuFile=newMenu("

文件"

//创建菜单项、菜单自项并指定快捷键

mi_File_Open=newMenuItem("

打开"

newMenuShortcut('

o'

));

mi_File_Close=newMenuItem("

关闭"

mi_File_Exit=newMenuItem("

退出"

mi_File_Exit.setShortcut(newMenuShortcut('

x'

mi_File_Open.setActionCommand("

mi_File_Close.setActionCommand("

mi_File_Open.addActionListener(this);

mi_File_Close.addActionListener(this);

//自身作为监视器

mi_File_Exit.addActionListener(this);

menuFile.add(mi_File_Open);

menuFile.add(mi_File_Close);

menuFile.addSeparator();

menuFile.add(mi_File_Exit);

m_MenuBar.add(menuFile);

menuEdit=newMenu("

编辑"

mi_Edit_Copy=newMenuItem("

复制"

mi_Edit_Cut=newCheckboxMenuItem("

剪切"

m_Edit_Paste=newMenu("

粘贴"

mi_Paste_All=newMenuItem("

全部粘贴"

mi_Paste_Part=newMenuItem("

部分粘贴"

mi_Edit_Copy.addActionListener(this);

mi_Edit_Cut.addItemListener(this);

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 数学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1