java实验代码Word下载.docx
《java实验代码Word下载.docx》由会员分享,可在线阅读,更多相关《java实验代码Word下载.docx(11页珍藏版)》请在冰豆网上搜索。
publicvoidsetName(Stringname){
this.name=name;
}
定义一个照相功能的接口
publicinterfaceTakePhoto{
publicabstractvoidTakePhotos();
定义一个手机的类继承设备类并且实现照相接口
publicclassPhoneextendsEquipmentimplementsTakePhoto{
publicPhone(Stringname){
super(name);
System.out.println("
---有参---"
+name);
publicvoidTakePhotos(){
System.out.println(getName()+"
:
像素低"
);
有傻瓜照相功能,还能打电话"
定义一个照相机的类继承设备类并且实现照相接口
publicclassCameraextendsEquipmentimplementsTakePhoto{
publicCamera(Stringname){
@Override
像素很高"
有夜间模式、微距模式等"
定义一个平板的类继承设备类并且实现照相接口
publicclassTabletPCextendsEquipmentimplementsTakePhoto{
publicTabletPC(Stringname){
像素还行"
屏幕大,看得爽,还能玩高清游戏"
测试代码并显示结果
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("
t.TakePhotos();
任务2
在几何图形中,按图形的几何维数分为平面图和立体图,所有的平面图都能计算周长和面积,所有的立体图都能计算表面积和体积.
定义Shape2D和Shape3D接口,
分别描述平面图和立体图的特征和行为,在Shape2D中定义计算周长和面积的方法,Shape3D继承Shape2D接口,新增计算体积的方法,定义Circle圆类和Sphere球类,分别实现Shape2D和Shape3D接口。
定义一个2D图形的接口
packageShape;
publicinterfaceShape2D{
abstractdoubleGrith(doubler);
abstractdoubleArea(doubler);
定义一个3D图形的接口
publicinterfaceShape3DextendsShape2D{
abstractdoubleVolume(doubler);
圆的类实现2D接口
publicclassCircleimplementsShape2D{
privatedoubler;
publicdoublegetR(){
returnr;
publicdoubleGrith(doubler){
return3.14*2*r;
publicdoubleArea(doubler){
return3.14*r*r;
圆的球实现3D接口
publicclassBallimplementsShape3D{
doubler;
return4*3.14*r*r;
publicdoubleVolume(doubler){
return(4.0/3.0)*r*r*r;
return2*3.14*r;
测试类并且输出显示
importjava.util.Scanner;
求圆的参数请输入1,求球的参数请输入2:
"
Scannera=newScanner(System.in);
inta1=a.nextInt();
if(a1==1){
Circlec=newCircle();
System.out.println("
请输入圆的半径:
doubler=a.nextDouble();
圆的周长为:
+c.Grith(r));
圆的面积为:
+c.Area(r));
}else{
Ballb=newBall();
请输入球的半径:
球的周长为:
+b.Grith(r));
球的面积为:
+b.Area(r));
球的体积为:
+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.month=month;
publicfloatgetSalary(intmonth){
if(this.month==month){
return100;
return0;
publicclassSalariedEmployeeextendsEmployee{
publicSalariedEmployee(Stringname,intmonth,floatsalary){
super(name,month);
this.salary=salary;
publicfloatgetSalary(intmonth)
{
returnsalary+super.getSalary(month);
}
publicclassHourlyEmployeeextendsEmployee{
inthour;
publicHourlyEmployee(Stringname,intmonth,inthour,floatsalary){
this.hour=hour;
this.salary=salary;
if(hour>
160){
return(float)(salary*160+(hour-160)*salary*1.5+super.getSalary(month));
returnsalary*hour+super.getSalary(month);
publicclassSalesEmployeeextendsEmployee{
floatsum;
floatrate;
publicSalesEmployee(Stringname,intmonth,floatsum,floatrate){
this.sum=sum;
this.rate=rate;
returnrate*sum+super.getSalary(month);
publicclassBasePlusSalesEmployeeextendsSalesEmployee{
publicBasePlusSalesEmployee(Stringname,intmonth,floatsalary,floatsum,floatrate){
super(name,month,sum,rate);
publicfloatsalary(intmonth){
returnsalary+sum*rate+super.getSalary(month);
测试类输出显示
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);
张三的工资为:
+a[0].getSalary(7));
李四的工资为:
+a[1].getSalary(7));
王五的工资为:
+a[2].getSalary(7));
周六的工资为:
+a[3].getSalary(7));