面向对象练习.docx

上传人:b****6 文档编号:7125517 上传时间:2023-01-20 格式:DOCX 页数:8 大小:30.93KB
下载 相关 举报
面向对象练习.docx_第1页
第1页 / 共8页
面向对象练习.docx_第2页
第2页 / 共8页
面向对象练习.docx_第3页
第3页 / 共8页
面向对象练习.docx_第4页
第4页 / 共8页
面向对象练习.docx_第5页
第5页 / 共8页
点击查看更多>>
下载资源
资源描述

面向对象练习.docx

《面向对象练习.docx》由会员分享,可在线阅读,更多相关《面向对象练习.docx(8页珍藏版)》请在冰豆网上搜索。

面向对象练习.docx

面向对象练习

任务四:

售粉小程序

知识点:

构造方法的使用及this的两种用法

为“无名的粉”写一个类:

classWuMingFen(注:

“无名”是长沙一家很有特色的粉店)要求:

1.有三个属性:

面码:

StringtheMa粉的分量(两):

intquantity

是否带汤:

booleanlikeSoup

2.写一个普通方法:

check(),用于查看粉是否符合要求。

即:

将对象的三个属性打印在控制台上。

3.写一个构造方法,以便于简化初始化过程,如,叫一碗3两牛肉带汤的粉:

WuMingFenf1=newWuMingFen("牛肉",3,true);

4.重载构造方法,使得初始化过程可以多样化,比如叫一碗2两鸡丝粉,则默认是带汤的:

WuMingFenf2=newWuMingFen("鸡丝",2);

5.如何顾客这样说:

老板,一碗粉。

则默认是酸辣面码、2两、带汤的?

WuMingFenf3=newWuMingFen();

6.调用check()方法,将上面每碗粉的属性都打印在控制台上。

classWuMingFen{

StringtheMa;

intquantity;

booleanlikeSoup;

WuMingFen(StringtheMa,intquantity,booleanlikeSoup){

This.theMa=theMa;

This.quantity=quantity;

This.likeSoup=likeSoup;

}

publicvoidcheck(){

System.out.println(thema+””+quantity+””+likeSoup);

}

}

任务五:

让计算机见识我们生活中的重载

知识点:

定义新的类型、普通方法的重载及其调用

厨师能够做很多菜,我们可以用一个动词来概括他的行为:

烹饪。

现在在厨师类中把烹饪cook()这个行为进行重载,将不同类型的食物作为参数定义在重载的cook()方法中。

根据传入的不同的食物类型,调用不同的重载cook()方法从而做出不同的菜来。

步骤1.定义各种“食物类“,如Rice,Fish,Vegetable,Dumpling……注意:

这里只要求我们创造一些食物的类型,想想定义一个类型代码最少的写法是怎样的?

提示:

类里面可以不写任何代码。

(Food)

2.写一个厨师类,名为Chef,在类中写关于“烹饪Xxx”的各种重载方法。

如:

voidcook(Ricer){

System.out.println(“煮饭”);

}

3.在main()中,调用cook()方法。

如:

DoCookdc=newDoCook();

Ricer=newRice();

dc.cook(r);

此时控制台上应出现:

煮饭

 

任务六:

网站人数计数器

知识点:

使用static成员

1.定义一个网站用户类:

User。

其中有属性staticintcounter用来记录该用户是第几位登录的用户。

该静态变量被初始化为0。

2.写一个静态方法:

staticshowCount(),要求能在控制台上输出Counter的值。

3.每当一个新的用户登录,要求counter值加1。

做法:

在该类的构造函数中,实现counter++;

4.在main()中,未产生任何用户对象之前,调用showCount();

5.使用for循环new10个用户,并调用showCount()方法查看网站登录总人数。

classUser{

staticintcounter;

User(){

counter++;

}

PublicstaticvoidshowCount(){

System.out.println(counter);

}

Publicstaticvoidmain(String[]args){

For(inti=0;i<10;i++){

Useruser=newUser();

}

User.showCount();

}

}

任务七:

写一个可以给员工发工资的程序。

知识点:

继承方法重写super的用法

步骤一:

设计一个雇员类Employee,其成员属性是姓名name(String型),工资wage(double型),另有一个获得总收入的成员方法doublegetSalary()(普通雇员的工资即为总收入)。

Employee的构造方法publicEmployee(doublewage)的作用是给工资赋值。

步骤二:

设计一个经理类Manager,它继承于Employee,与Employee相比,增加了一个成员属性奖金allowance(double型),也有一个获得总收入的成员方法doublegetSalary()(经理的总收入=工资+奖金)。

Manager的构造方法是给工资和奖金赋值。

步骤三:

写一个测试类:

其中有语句:

Employeeemp=newEmployee(2500);

System.out.println(emp.getSalary());

Managerm=newManager(3000,500);

System.out.println(m.getSalary());

则控制台上结果应为:

2500.0

3500.0

classEmployee{

Stringname;

doublewage;

publicdoublegetSalary(){

returnwage;

}

PublicEmployee(doublewage){

this.wage=wage;

}

}

ClassManagerextendsEmployee{

doubleallowance;

Manager(doublewage,doubleallowance){

super(wage);

this.allowance=allowance;

}

publicdoublegetSalary(){

returnwage+allowance;

}

 

}

任务八:

请用尽量简练的话对四种访问权限做一个总结。

参考答案:

public完全公开

protected包内公开+隔包父子公开

缺省包内公开

private类中公开

任务九:

根据下列代码回答问题:

classVehicle{

publicvoidmove(){

System.out.println("avehiclemoving...");

}

}

publicclassCarextendsVehicle{

publicvoidrun(){

System.out.println("acarrunning...");

}

publicstaticvoidmain(String[]args){

Vehiclebenz=newCar();

benz.run();

}

}

提问:

上述代码能通过编译吗?

如果不能,请说明理由。

任务十:

当一回娱乐主播!

说明:

本题涉及设计思想,仅为启发之用。

如果按步骤提示能够将代码完成,即光荣完成任务。

开场白:

ShowbizShowbizAlwaysShowbiz~~~娱乐急先锋,娱乐消息八面通~各位观众大家好,我是娱乐主播爪哇欧欧劈,今天要八卦的明星有三位:

分别是:

歌舞都飙得不错的溜得滑(虽然喜欢有事没事地摔跤);以及酷爱乱摆pose,乱唱乱跳的芙蓉打劫(已经无数次地打劫了我们的眼睛和耳朵,那是相当的惊艳);最后当然还有颇具商业头脑的酒吧掌柜当红明星你轧棚(生意太好了吧,连棚都挤跨了)……

步骤一:

写一个抽象明星父类Star.要求其中有:

成员

成员名

说明

属性

Stringname

明星的名字

属性

intsalary

明星的收入

方法

Star(Stringname,intsalary)

构造方法,初始化成员属性(子类构造方法要用到super(Stringn,ints))

方法

getInfo()

非抽象的,输出name和salary的值

方法

sing()

抽象方法

方法

dance()

抽象方法

步骤二:

写一个GoodStar类继承于Star类,要求如下:

成员

成员名

说明

方法

GoodStar(Stringname,intsalary)

构造方法

方法

sing()

覆盖父类的方法,应能打印出“唱得好”

方法

dance()

覆盖父类的方法,应能打印出“跳得棒”

步骤三:

写一个炒作明星类OhMyGodStar类继承于Star类:

成员

成员名

说明

方法

OhMyGodStar(Stringname,intsalary)

构造方法

方法

sing()

覆盖父类的方法,应能打印出“这也叫歌?

方法

dance()

覆盖父类的方法,应能打印出“观众崩溃了”

步骤四:

定义一个接口:

Business

成员

成员名

说明

方法

sell(Stringxx)

声明一个卖方法

步骤五:

写一个有商业头脑的明星类BusinessStar,继承于Star类,并且实现Business接口

成员

成员名

说明

方法

BusinessStar(Stringname,intsalary)

构造方法

方法

sell(Stringxx)

覆盖卖方法,打印出“卖xx”

方法

sing()

覆盖父类的方法,能打印出“能歌”

方法

dance()

覆盖父类的方法,能打印出“会舞”

步骤六:

测试

StarliuDeHua=newGoodStar(“溜得滑”,274000);

liuDeHua.getInfo();

liuDeHua.sing();

liuDeHua.dance();

StarfuRongDaJie=newOhMyGodStar(“芙蓉打劫”,280);

fuRongDaJie.getInfo();

fuRongDaJie.sing();

fuRongDaJie.dance();

BusinessStarliYaPeng=newBusinessStar(“你轧棚”,547000);

liYaPeng.getInfo();

liYaPeng.sing();

liYaPeng.dance();

liYaPeng.sell(“芝华士”);//注意,由于sell()方法不是Star类中的方法,所以这里不能使用转型的引用,只能用子类的引用。

测试结果:

 

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

当前位置:首页 > 医药卫生 > 临床医学

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

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