实验任务任务1需求:具有照像功的设备:手机Phone,数码照像机Camera,平板电脑Tabletpc请遵循照像功能Photographable实现takePhoto的功能。实现效果图如下:代码如下:各种设备终端的抽象类packagetakePhoto;publicabstractclassEquipment{privateStringname;publicEquipment(Stringname){super();}publicStringgetName(){returnname;}publicvoidsetName(Stringname){this.name=name;}}定义一个照相功能的接口packagetakePhoto;publicinterfaceTakePhoto{publicabstractvoidTakePhotos();}定义一个手机的类继承设备类并且实现照相接口packagetakePhoto;publicclassPhoneextendsEquipmentimplementsTakePhoto{publicPhone(Stringname){super(name);System.out.println("---有参---"name);}publicvoidTakePhotos(){System.out.println(getName()":像素低");System.out.println(getName()"有傻瓜照相功能,还能打电话");}}定义一个照相机的类继承设备类并且实现照相接口packagetakePhoto;publicclassCameraextendsEquipmentimplementsTakePhoto{publicCamera(Stringname){super(name);System.out.println("---有参---"name);}@OverridepublicvoidTakePhotos(){System.out.println(getName()":像素很高");System.out.println(getName()"有夜间模式、微距模式等");}}定义一个平板的类继承设备类并且实现照相接口packagetakePhoto;publicclassTabletPCextendsEquipmentimplementsTakePhoto{publicTabletPC(Stringname){super(name);System.out.println("---有参---"name);}@OverridepublicvoidTakePhotos(){System.out.println(getName()":像素还行");System.out.println(getName()"屏幕大,看得爽,还能玩高清游戏");}}测试代码并显示结果packagetakePhoto;publicclassTest{publicstaticvoidmain(String[]args){Phonep1=newPhone("诺基亚");p1.setName("诺基亚");p1.TakePhotos();Phonep2=newPhone("小米");p2.setName("小米");p2.TakePhotos();Camerac=newCamera("索尼数码");c.setName("索尼数码");c.TakePhotos();TabletPCt=newTabletPC("ipad");t.setName("ipad");t.TakePhotos();}}任务2在几何图形中,按图形的几何维数分为平面图和立体图,所有的平面图都能计算周长和面积,所有的立体图都能计算表面积和体积.定义Shape2D和Shape3D接口,分别描述平面图和立体图的特征和行为,在Shape2D中定义计算周长和面积的方法,Shape3D继承Shape2D接口,新增计算体积的方法,定义Circle圆类和Sphere球类,分别实现Shape2D和Shape3D接口。代码如下:定义一个2D图形的接口packageShape;publicinterfaceShape2D{abstractdoubleGrith(doubler);abstractdoubleArea(doubler);}定义一个3D图形的接口packageShape;publicinterfaceShape3DextendsShape2D{abstractdoubleVolume(doubler);}圆的类实现2D接口packageShape;publicclassCircleimplementsShape2D{privatedoubler;publicdoublegetR(){returnr;}publicdoubleGrith(doubler){return3.14*2*r;}publicdoubleArea(doubler){return3.14*r*r;}}圆的球实现3D接口packageShape;publicclassBallimplementsShape3D{doubler;publicdoublegetR(){returnr;}publicdoubleArea(doubler){return4*3.14*r*r;}publicdoubleVolume(doubler){return(4.0/3.0)*r*r*r;}@OverridepublicdoubleGrith(doubler){return2*3.14*r;}}测试类并且输出显示packageShape;importjava.util.Scanner;publicclassTest{publicstaticvoidmain(String[]args){System.out.println("求圆的
参数
转速和进给参数表a氧化沟运行参数高温蒸汽处理医疗废物pid参数自整定算法口腔医院集中消毒供应
请输入1,求球的参数请输入2:");Scannera=newScanner(System.in);inta1=a.nextInt();if(a1==1){Circlec=newCircle();System.out.println("请输入圆的半径:");doubler=a.nextDouble();System.out.println("圆的周长为:"c.Grith(r));System.out.println("圆的面积为:"c.Area(r));}else{Ballb=newBall();System.out.println("请输入球的半径:");doubler=a.nextDouble();System.out.println("球的周长为:"b.Grith(r));System.out.println("球的面积为:"b.Area(r));System.out.println("球的体积为:"b.Volume(r));}}}3.某公司的雇员分为以下若干类:Employee:这是所有员工总的父类,属性:员工的姓名,员工的生日月份。方法:getSalary(intmonth)根据参数月份来确定工资,如果该月员工过生日,则公司会额外奖励100元。SalariedEmployee:Employee的子类,拿固定工资的员工。属性:月薪HourlyEmployee:Employee的子类,按小时拿工资的员工,每月工作超出160小时的部分按照1.5倍工资发放。属性:每小时的工资、每月工作的小时数SalesEmployee:Employee的子类,销售人员,工资由月销售额和提成率决定。属性:月销售额、提成率BasePlusSalesEmployee:SalesEmployee的子类,有固定底薪的销售人员,工资由底薪加上销售提成部分。属性:底薪。写一个程序,把若干各种类型的员工放在一个Employee数组里,写一个函数,打印出某月每个员工的工资数额。注意:要求把每个类都做成完全封装,不允许非私有化属性。代码如下:员工的基本类packageCompany;publicclassEmployee{Stringname;intmonth;floatsalary;publicEmployee(Stringname,intmonth){this.name=name;this.month=month;}publicfloatgetSalary(intmonth){if(this.month==month){return100;}else{return0;}}}SalariedEmployee:Employee的子类,拿固定工资的员工。属性:月薪packageCompany;publicclassSalariedEmployeeextendsEmployee{floatsalary;publicSalariedEmployee(Stringname,intmonth,floatsalary){super(name,month);this.salary=salary;}publicfloatgetSalary(intmonth) { returnsalarysuper.getSalary(month); }}HourlyEmployee:Employee的子类,按小时拿工资的员工,每月工作超出160小时的部分按照1.5倍工资发放。属性:每小时的工资、每月工作的小时数packageCompany;publicclassHourlyEmployeeextendsEmployee{inthour;floatsalary;publicHourlyEmployee(Stringname,intmonth,inthour,floatsalary){super(name,month);this.hour=hour;this.salary=salary;}publicfloatgetSalary(intmonth){if(hour>160){return(float)(salary*160(hour-160)*salary*1.5super.getSalary(month));}else{returnsalary*hoursuper.getSalary(month);}}}SalesEmployee:Employee的子类,销售人员,工资由月销售额和提成率决定。属性:月销售额、提成率packageCompany;publicclassSalesEmployeeextendsEmployee{floatsum;floatrate;publicSalesEmployee(Stringname,intmonth,floatsum,floatrate){super(name,month);this.sum=sum;this.rate=rate;}publicfloatgetSalary(intmonth){returnrate*sumsuper.getSalary(month);}}BasePlusSalesEmployee:SalesEmployee的子类,有固定底薪的销售人员,工资由底薪加上销售提成部分。属性:底薪。packageCompany;publicclassBasePlusSalesEmployeeextendsSalesEmployee{floatsalary;publicBasePlusSalesEmployee(Stringname,intmonth,floatsalary,floatsum,floatrate){super(name,month,sum,rate);this.salary=salary;}publicfloatsalary(intmonth){returnsalarysum*ratesuper.getSalary(month);}}测试类输出显示packageCompany;publicclassTest{publicstaticvoidmain(Stringargs[]){Employeea[]=newEmployee[4];a[0]=newSalariedEmployee("张三",4,4440);a[1]=newHourlyEmployee("李四",3,224,30);a[2]=newSalesEmployee("王五",7,50000,0.1f);a[3]=newBasePlusSalesEmployee("周六",12,2500,64500,0.1f);System.out.println("张三的工资为:"a[0].getSalary(7));System.out.println("李四的工资为:"a[1].getSalary(7));System.out.println("王五的工资为:"a[2].getSalary(7));System.out.println("周六的工资为:"a[3].getSalary(7));}}