JAVA第06周实验-包-接口与抽象类_第1页
JAVA第06周实验-包-接口与抽象类_第2页
JAVA第06周实验-包-接口与抽象类_第3页
JAVA第06周实验-包-接口与抽象类_第4页
JAVA第06周实验-包-接口与抽象类_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

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

文档简介

实验内容第06周实验接口内部类与包成绩姓名陈佳宇学号20232730班级软件二班专业软件工程日期2023年4月1日【实验目的】---包理解掌握Java类的管理机制——包__________________________________________________________________________________________________1、//源程序1packageP1;classC1{}publicclassC2{publicstaticvoidmain(Stringargs[]){ System.out.println("观察编译结果"); }}interfaceI1{}要求:将上述程序分别保存并调试,写下运行结果和编译结果。调试过程:1) 保存文件C2.java(注意:在一个java源程序中只能有一条包语句)2) 编译:javac–d.C2.java3) 运行:javaP1.C22、//源程序2packageP2;classC3{}要求:将上述程序分别保存并调试,写下运行结果和编译结果1) 保存文件C3.java2) 编译:javac–d.C3.java3) 运行:javaP2.C33、将下述源程序保存并编译,观察并写下编译结果。packageP1;publicclassC4{}将下述源程序保存并编译,观察并写下编译结果。packageP1.pp1;publicclassC5{}____________________________________________________________________________________【实验结果与分析】1.2,3.4.____________________________________________________________________________【实验目的】---抽象类与接口理解掌握Java抽象类的继承与接口的实现————————————————————————————————————————二、抽象类与接口1、运行程序,写下程序运行结果,理解抽象类的使用。abstractclassAnimal{ publicabstractvoidcry();}classDogextendsAnimal{publicvoidcry(){System.out.println("汪汪.....");}}publicclassTestDemo{publicstaticvoidmain(Stringargs[]){Animala;a=newDog();a.cry();}}2、将抽象类Animal写成接口,并定义Dog类实现该结果,写成程序并给出运行结果————————————————————————————————————————————————【实验结果与分析】1、interfaceAnimal{ voidcry();}classDogimplementsAnimal{publicvoidcry(){System.out.println("汪汪.....");}}publicclassTestDemo{publicstaticvoidmain(Stringargs[]){Doga=newDog();a.cry();}}_______________________________________________________________________________3、按照下面的要求,完成程序并给出程序的运行结果定义接口:InterfaceShape{floatPI=3.1415926;voiddraw();//绘制图形,在程序中用信息输出表示,如,绘制一个圆doublegetArea();//获取面积doublegetCircumference()//周长}要求:〔1〕分别定以下类〔每个类必须继承接口Shape〕:圆〔Circle〕椭圆〔Eclipse〕矩形〔Rectangle〕三角形〔Triangle〕〔2〕每个类的定义:1〕 定义相应成员变量;2〕 实现接口中定义的方法;3〕 定义带参构造方法;4〕 在程序中定义类TestShape,并在main方法中完成对各类的测试________________________________________________________________________________【实验结果与分析】编写程序并给出运行结果:interfaceShape{floatPI=3.1415926f;voiddraw();//绘制图形,在程序中用信息输出表示,如,绘制一个圆doublegetArea();//获取面积doublegetCircumference();//周长}classCircleimplementsShape//圆{doubler; publicCircle(doubler) { this.r=r; } publicvoiddraw() { System.out.println("绘制一个半径为"+r+"的圆"); } publicdoublegetArea() { returnPI*r*r; } publicdoublegetCircumference() {return2*PI*r; }}classEclipseimplementsShape//椭圆{doublea,b;publicEclipse(doublea,doubleb){this.a=a;this.b=b;}publicvoiddraw(){System.out.println("绘制一个长半轴为:"+a+"\t短半轴为:"+b+"的椭圆");}publicdoublegetArea(){returnPI*a*b;}publicdoublegetCircumference(){return2*PI*b+4*(a-b);}}classRectangleimplementsShape//矩形{doublea,b;publicRectangle(doublea,doubleb){this.a=a;this.b=b;}publicvoiddraw(){System.out.println("绘制一个长为"+a+"\t宽为:"+b+"的矩形");}publicdoublegetArea(){returna*b;}publicdoublegetCircumference(){return2*(a+b);}}classTriangleimplementsShape//三角形{doublea,b,c;publicTriangle(doublea,doubleb,doublec){this.a=a;this.b=b;this.c=c;}publicvoiddraw(){System.out.println("绘制一个三边长分别为:"+a+""+b+""+c+"的三角形");}publicdoublegetArea(){ doublel=(a+b+c)/2; returnjava.lang.StrictMath.pow(l*(l-a)*(l-b)*(l-c),1.0/2);}publicdoublegetCircumference(){returna+b+c;}}publicclassTestShape{ publicstaticvoidmain(String[]args) { Circlea=newCircle(3);a.draw();System.out.print("面积Area="+a.getArea()+"");System.out.println("周长Circumference="+a.getCircumference());Eclipseb=newEclipse(4,3);b.draw();System.out.print("面积Area="+b.getArea()+"");System.out.println("周长Circumference="+b.getCircumference());Rectanglec=newRectangle(3.2,4.5);c.draw();System.out.print("面积Area="+c.getArea()+"");System.out.println("周长Circumference="+c.getCircumference());Triangled=newTriangle(3,4,5);d.draw();System.out.print("面积Area="+d.getArea()+"");System.out.println("周长Circumference="+d.getCircumference());}}4、按照下面的要求,完成程序并给出程序的运行结果假定要为某个公司编写雇员工资支付程序,这个公司有各种类型的雇员〔Employee〕,不同类型的雇员按不同的方式支付工资:〔1〕经理〔Manager〕——每月获得一份固定的工资〔2〕销售人员〔Salesman〕——在根本工资的根底上每月还有销售提成。〔3〕一般工人〔Worker〕——那么按他每月工作的天数计算工资。根据上述要求试用类的继承和相关机制描述这些功能,并编写一个JavaApplication程序,演示这些类的用法。〔提示:应设计一个雇员类〔Employee〕描述所有雇员的共图特性,这个类应该提供一个计算工资的抽象方法ComputeSalary(),使得可以通过这个类计算所有雇员的工资。经理、销售人员和一般工人对应的类都应该继承这个类,并重新定义计算工资的方法,进而给出它的具体实现。〕//Employee类的定义如下abstractclassEmployee{ privateStringname; publicEmployee(Stringname){ =name; } publicStringgetName(){ returnname; } publicabstractdoublecomputeSalary(); }_______________________________________________________________________________________________【实验结果与分析】编写程序并给出运行结果importjava.util.Arrays;importjava.util.Scanner;abstractclassEmployee{ privateStringname; publicEmployee(Stringname){ =name; } publicStringgetName(){ returnname; } publicabstractdoublecomputeSalary();}classManagerextendsEmployee{staticprivatedoubleregularwages; publicManager(Stringname,doubleregularwages) { super(name); this.regularwages=regularwages; } publicdoublecomputeSalary() { returnregularwages; }}classSalesmanextendsEmployee{ staticprivatedoubleregularwages; staticprivateintsaleNumber; staticprivatedoubleEveryBonus;publicSalesman(Stringname,doubleregularwages,intsaleNumber,doubleEveryBonus) { super(name); this.regularwages=regularwages; this.saleNumber=saleNumber; this.EveryBonus=EveryBonus; } publicdoublecomputeSalary() { returnregularwages+saleNumber*EveryBonus; }}classWorkerextendsEmployee{ staticprivateintworkdays; staticprivatedoubledaysBonus;publicWorker(Stringname,intworkdays,doubledaysBonus) { super(name); this.workdays=workdays; this.daysBonus=daysBonus; } publicdoublecomputeSalary() { returnworkdays*daysBonus; }}publicclassWagesCompute{publicstaticvoidmain(String[]args){ Scannerinput=newScanner(System.in); System.out.println("欢送进入本公司员工工资支付计算系统:"); System.out.println("经理的工资(固定):");//经理工资 Managera=newManager("王阳",50000); System.out.println(a.getName()+"的月工资为:"+aputeSalary()); System.out.println("销售人员的月工资:");//销售人员工资System.out.println("请输入销售人员的姓名:"); Stringsalesname=input.next(); System.out.println("请输入销售人员的每月固定工资:"); doubleregualwages=input.nextInt(); System.out.println("请输入销售人员的月销售量:"); intsaleNumber=input.nextInt(); System.out.println("请输入销售人员的每份销售提成:"); doubleEveryBonus=input.nextInt(); Salesmanb=newSalesman(salesname,regualwages,saleNum

温馨提示

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

评论

0/150

提交评论