实践与练习

综合练习1:创建猫类 创建Cat类,类中包含表示名字的属性name、表示年龄的属性age、表示重量的属性weight和表示颜色的属性color。重写toString()方法,在控制台上输出如下内容:

     猫咪1号:名字:Java
     年龄:12
     重量:21.0
     颜色:java.awt.Color[r=0,g=0,b=0]

     猫咪2号:名字:C++
     年龄:12
     重量:21.0
     颜色:java.awt.Color[r=255,g=255,b=255]

     猫咪3号:名字:Java
     年龄:12
     重量:21.0
     颜色:java.awt.Color[r=0,g=0,b=0]

综合练习2:创建昆虫类 首先,创建一个表示飞行的接口Flyable,接口中有一个表示飞行的抽象方法fly()。然后,创建一个抽象的昆虫类Insect,类中有一个表示昆虫有多少条腿的int型变量legs,有一个有参的构造方法,还有一个表示繁殖的抽象方法reproduce()。接着,创建一个苍蝇类,使之继承昆虫类Insect,并实现接口Flyable。最后,创建测试类Test,并在控制台上输出如下内容:

     苍蝇有6条腿。
     苍蝇可以在空中飞行。
     苍蝇的繁殖方式是产卵。

综合练习3:餐馆点菜 编写一个程序,使用向下转型模拟如下场景:餐馆里有3位客人,一位老师、一位学生和一位医生;老师点了“香辣肉丝”,学生点了“火腿炒面”,医生点了“麻辣香锅”。

综合练习4:老虎机 老虎机有3个玻璃框,每个玻璃框中都有红、黄、蓝3张卡片。拉下拉杆后,每个玻璃框中的3张卡片同时开始转动。编写一个程序,使用instanceof关键字实现上述过程,并将每个玻璃框停止转动时的结果输出在控制台上。例如,“黄黄红”“蓝黄黄”“黄红黄”等。

综合练习5:抽象的图形 创建一个抽象的图形类,图形类中有一个表示“颜色”的属性、一个有参构造方法和一个抽象的“获得面积”的方法。让长方形类继承图形类,先在长方形类的构造方法中调用图形类的构造方法,再在长方形类中声明表示“长”和“宽”的两个属性,接着在长方形类中重写图形类中的抽象方法。在控制台上输出如下内容:

     长为6.0、宽为2.0的黄色长方形的面积是12.0

综合练习6:判断3条给定长度的边能否构成三角形 创建一个抽象的图形类,图形类中有一个抽象的“计算周长”的方法。让三角形类继承图形类,先在三角形类中声明三角形的3条边,再判断这3条边能否构成三角形,接着重写图形类中的抽象方法。现有长为3、4、5的3条边和长为1、4、5的3条边,控制台分别输出这两组边能否构成三角形。如果能,则计算三角形的周长。在控制台上输出如下内容:

     长为3.0、4.0、5.0的3条边能构成三角形,这个三角形的周长为12.0
     长为1.0、4.0、5.0的3条边不能构成三角形,因为三角形两边之和必须大于第三边

综合练习7:USB/TypeC充电接口 首先,创建一个表示USB充电的接口USBRechargeable,接口中有一个表示充电的抽象方法charge()。然后,创建一个表示TypeC充电的接口TypeCRechargeable,接口中也有一个表示充电的抽象方法charge()。接着,创建一个汽车类Car,使之同时实现接口USBRechargeable和接口TypeCechargeable。最后,创建测试类Test,并在控制台上输出“汽车上的USB和TypeC接口都能用于给手机充电”。

综合练习8:景区游客人数 创建3个接口,分别表示可增加的接口Addable,可减少的接口Reducible和可变化的接口Changeable,其中接口Changeable同时继承接口Addable和接口Reducible。接口Addable中有一个表示增加的抽象方法add(),接口Reducible中有一个表示减少的抽象方法reduce(),接口Changeable中有一个表示均匀变化30个单位的常量UNITS。创建一个人数类Number,使之实现接口Changeable。编写一个程序模拟如下场景:某景区只允许满载30人的大巴车进出,当天自景区开放起,已驶入景区的大巴车有7辆,驶出景区的大巴车有4辆,计算景区里还有多少人?