鱼C论坛

 找回密码
 立即注册
查看: 609|回复: 3

泛型类

[复制链接]
发表于 2023-11-12 17:43:23 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
编写Java程序,使用泛型类完成生日礼物抽奖器应用程序。实验要求如下:
①请编写一个泛型类GiftGenerator,该类至少有gift(礼物)和giftList(礼物池)两个成员变量,增加礼物addGift()和随机获取礼物池中的礼物getGift()两个方法。
②编写一个主类BirthdayGiftLottery,完成随机抽取生日礼物,并输出抽取到的生日礼物。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-11-12 17:43:30 | 显示全部楼层
// GiftGenerator.java
import java.util.ArrayList;
import java.util.Random;

public class GiftGenerator<T> {
    private T gift;
    private ArrayList<T> giftList;

    public GiftGenerator() {
        giftList = new ArrayList<>();
    }

    public void addGift(T newGift) {
        giftList.add(newGift);
    }

    public T getGift() {
        Random random = new Random();
        int index = random.nextInt(giftList.size());
        return giftList.get(index);
    }
}
// BirthdayGiftLottery.java
public class BirthdayGiftLottery {
    public static void main(String[] args) {
        GiftGenerator<String> giftGenerator = new GiftGenerator<>();
        giftGenerator.addGift("书籍");
        giftGenerator.addGift("玩具");
        giftGenerator.addGift("衣服");

        System.out.println("抽取到的生日礼物是:" + giftGenerator.getGift());
    }
}

在上述代码中,我们定义了一个泛型类GiftGenerator,其中使用了泛型T来表示礼物的类型。在主类BirthdayGiftLottery中,我们实例化了一个GiftGenerator对象,并向其中添加了一些礼物。最后,通过调用getGift方法来随机获取一个生日礼物并输出。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-11-12 17:43:55 | 显示全部楼层
[/code]java
import java.util.ArrayList;
import java.util.List;
import java.util.Random;

// 泛型类GiftGenerator
public class GiftGenerator<T> {
    private T gift;
    private List<T> giftList;

    public GiftGenerator() {
        giftList = new ArrayList<>();
    }

    public void addGift(T newGift) {
        giftList.add(newGift);
    }

    public T getGift() {
        if (giftList.isEmpty()) {
            return null;
        }
        Random random = new Random();
        int index = random.nextInt(giftList.size());
        return giftList.get(index);
    }
}

// 主类BirthdayGiftLottery
public class BirthdayGiftLottery {
    public static void main(String[] args) {
        GiftGenerator<String> giftGenerator = new GiftGenerator<>();
        giftGenerator.addGift("音响");
        giftGenerator.addGift("手表");
        giftGenerator.addGift("香水");
        giftGenerator.addGift("礼券");

        String randomGift = giftGenerator.getGift();
        System.out.println("恭喜您抽中的生日礼物是:" + randomGift);
    }
}
[/code]
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-11-12 20:08:52 | 显示全部楼层
在Java中,我们可以使用泛型类来创建一个通用的礼物生成器。下面是一个实现示例:

import java.util.ArrayList;import java.util.Random;// 创建一个泛型类GiftGenerator,T代表任何类型的礼物public class GiftGenerator<T> {    // 成员变量    private T gift;    private ArrayList<T> giftList;    // 构造函数    public GiftGenerator() {        giftList = new ArrayList<>();    }    // 增加礼物    public void addGift(T gift) {        giftList.add(gift);    }    // 随机获取礼物    public T getGift() {        Random random = new Random();        int index = random.nextInt(giftList.size());        gift = giftList.get(index);        return gift;    }}


接下来,我们来创建主类BirthdayGiftLottery,它将使用GiftGenerator类随机抽取一个生日礼物。

public class BirthdayGiftLottery {    public static void main(String[] args) {        // 创建一个GiftGenerator实例,并指定礼物的类型为String        GiftGenerator<String> giftGenerator = new GiftGenerator<>();        // 添加一些礼物        giftGenerator.addGift("Teddy Bear");        giftGenerator.addGift("Chocolate Box");        giftGenerator.addGift("Book");        giftGenerator.addGift("Watch");        // 随机抽取一个礼物        String gift = giftGenerator.getGift();        // 输出抽取到的生日礼物        System.out.println("The randomly selected birthday gift is: " + gift);    }}


在这个例子中,我们创建了一个GiftGenerator实例,并添加了一些字符串类型的礼物。然后,我们使用getGift()方法随机抽取一个礼物,并输出抽取到的礼物。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-22 01:56

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表