第十二次实验

文章讲述了如何优化宠物店管理系统的类结构,使用Java泛型简化Cat类,定义通用的生育方法接口。同时,提出了创建团队自己的泛型ArrayList类的需求,该类需具备泛型、空间扩展、添加、删除、获取数据及计算有效数据个数等功能。

1.宠物店管理系统的一个优化思路

老张在宠物店管理系统中写了一大堆Cat啊、Dog啊这样的宠物类,发现在这些类中有些信息使用的次数很少,甚至是一些字段很多情况下只能有一部分被使用,比如Cat的特征字段feature,有些时候需要用字符串类型,有些时候需要使用数值类型,于是定义了一堆strFeature,intFeature这样的东西,老张看到Java泛型的使用方法后心里琢磨了起来,如果使用泛型能不能简化Cat这样的类的结构呢?于是老张写出了测试程序:

public static void main(String[] args) {
        Cat<String> cat = new Cat<>();
        cat.setFeature("肥胖");
        System.out.println(cat.desc());
        Cat<Integer> cat2 = new Cat<>();
        cat2.setFeature(13);
        System.out.println(cat2.desc());
        Cat<Double> cat3 = new Cat<>();
        cat3.setFeature(12.1);
        System.out.println(cat3.desc());
    }

期望的输出为:

此猫猫是一只可爱的肥胖猫咪
此猫猫是一只体重为13的猫猫
此猫猫特征不明,有人认为它的特征为12.1

你能帮老张完成这个Cat类吗?
老张还想让所有的宠物都有生育方法,比如猫应该有方法Cat birth()来生一只小猫,狗能使用Dog birth()方法生一只小狗,能不能定义一个接口来完成这个事情,让实现这个接口的类都有适当的birth方法呢?

2.雄心万丈的老张

在开发过程中的顺风顺水让老张自我膨胀了起来,一天老张忽然觉得自己的团队成员应该有能力封装java的任何一个成熟类型,于是找到团队里的你,让你试着做一个团队自己的泛型类ArrayList,主要实现以下几个功能:
1. 必须是泛型类,能装下任何指定类型的数据
2. 必须可以进行空间扩展,空间不足的时候可以通过翻倍内部数据空间的方法得到更多的空间容纳新数据
3. 可以添加数据
4. 可以删除数据
5. 可以取指定位置的数据
6. 可以获得空间中有效数据的个数
7. 可以使用for枚举空间中所有数据
你能帮老张做到吗?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值