4.11 实战练习
1.类练习,具体如下。
(1)写一个类,名为Animal,该类有两个私有的成员变量:name(代表动物的名字)和legs(代表动物的腿的条数);要求为两个私有成员变量提供public的访问方法。编写两个重载的构造方法,一个需要两个参数,分别用这两个参数给私有成员变量name和legs赋值;另一个无参,默认给name赋值为AAA,给legs赋值为4;另要求在第二个构造方法中调用第一个构造方法。该类还有两个重载的move方法,其中一个无参,在屏幕上输出一行文字:XXX Moving!(XXX为该动物的名字);另一个需要一个int参数n,在屏幕上输出:XXX Moving n米!
(2)写一个类Fish,继承自Animal类,并提供一个构造方法,该构造方法需要一个参数name,并给legs赋默认值0;该类还要求覆盖Animal类中的无参move方法,要求输出:XXX Swimming!
(3)写一个类Bird,继承自Animal类,并提供一个构造方法,该构造方法需要一个参数name,并给legs赋默认值2;该类还要求覆盖Animal类中的无参move方法,要求输出:XXX Flying!
(4)写一个类Zoo,定义一个main方法,在main方法中分别生成若干个Animal、Fish和Bird类的对象,并调用它们的方法。
2.写一个类Person,包含以下数据成员:
String name; (姓名)
int age; (年龄)
boolean gender;(性别)
Person partner; (配偶)
为Person类写一个marry(Person p)方法,代表当前对象和p结婚,如果可以结婚,则输出恭贺信息,否则输出不能结婚的原因。要求在另外一个类中写一个main方法,测试两个Person对象是否能够结婚。
下列情况不能结婚:
(1)同性;
(2)未达到法定结婚年龄,男<22岁,女<20岁;
(3)某一方已婚。
3.写一个电话卡的类(PhoneCard),账号:cardNumber,初始金额:initMoney,使用时间:time(单位:分钟),计费方式:minMoney。编写两个电话卡的子类:ip卡和201卡,它们的计费方式不同(每分钟费用分别为0.3和0.45);两张卡的初始金额是30,给定一个时间time=5,分别计算出剩余金额。