java实验代码.docx

上传人:b****3 文档编号:4871301 上传时间:2022-12-11 格式:DOCX 页数:11 大小:86.61KB
下载 相关 举报
java实验代码.docx_第1页
第1页 / 共11页
java实验代码.docx_第2页
第2页 / 共11页
java实验代码.docx_第3页
第3页 / 共11页
java实验代码.docx_第4页
第4页 / 共11页
java实验代码.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

java实验代码.docx

《java实验代码.docx》由会员分享,可在线阅读,更多相关《java实验代码.docx(11页珍藏版)》请在冰豆网上搜索。

java实验代码.docx

java实验代码

实验任务

任务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);

}

@Override

publicvoidTakePhotos(){

System.out.println(getName()+":

像素很高");

System.out.println(getName()+"有夜间模式、微距模式等");

}

}

定义一个平板的类继承设备类并且实现照相接口

packagetakePhoto;

publicclassTabletPCextendsEquipmentimplementsTakePhoto{

publicTabletPC(Stringname){

super(name);

System.out.println("---有参---"+name);

}

@Override

publicvoidTakePhotos(){

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;

}

@Override

publicdoubleGrith(doubler){

return2*3.14*r;

}

}

 

测试类并且输出显示

packageShape;

importjava.util.Scanner;

publicclassTest{

publicstaticvoidmain(String[]args){

System.out.println("求圆的参数请输入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)

{

returnsalary+super.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.5+super.getSalary(month));

}else{

returnsalary*hour+super.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*sum+super.getSalary(month);

}

}

BasePlusSalesEmployee:

SalesEmployee的子类,有固定底薪的销售人员,工资由底薪加上销售提成部分。

属性:

底薪。

packageCompany;

publicclassBasePlusSalesEmployeeextendsSalesEmployee{

floatsalary;

publicBasePlusSalesEmployee(Stringname,intmonth,floatsalary,floatsum,floatrate){

super(name,month,sum,rate);

this.salary=salary;

}

publicfloatsalary(intmonth){

returnsalary+sum*rate+super.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));

}

}

 

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

当前位置:首页 > 法律文书 > 调解书

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

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