鱼C论坛

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

泛型类

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

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

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

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

使用道具 举报

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

  4. public class GiftGenerator<T> {
  5.     private T gift;
  6.     private ArrayList<T> giftList;

  7.     public GiftGenerator() {
  8.         giftList = new ArrayList<>();
  9.     }

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

  13.     public T getGift() {
  14.         Random random = new Random();
  15.         int index = random.nextInt(giftList.size());
  16.         return giftList.get(index);
  17.     }
  18. }
复制代码

  1. // BirthdayGiftLottery.java
  2. public class BirthdayGiftLottery {
  3.     public static void main(String[] args) {
  4.         GiftGenerator<String> giftGenerator = new GiftGenerator<>();
  5.         giftGenerator.addGift("书籍");
  6.         giftGenerator.addGift("玩具");
  7.         giftGenerator.addGift("衣服");

  8.         System.out.println("抽取到的生日礼物是:" + giftGenerator.getGift());
  9.     }
  10. }
复制代码


在上述代码中,我们定义了一个泛型类GiftGenerator,其中使用了泛型T来表示礼物的类型。在主类BirthdayGiftLottery中,我们实例化了一个GiftGenerator对象,并向其中添加了一些礼物。最后,通过调用getGift方法来随机获取一个生日礼物并输出。
小甲鱼最新课程 -> https://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]
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

  1. import java.util.ArrayList;
  2. import java.util.Random;
  3. // 创建一个泛型类GiftGenerator,T代表任何类型的礼物
  4. public class GiftGenerator<T> {
  5.     // 成员变量
  6.     private T gift;
  7.     private ArrayList<T> giftList;
  8.     // 构造函数
  9.     public GiftGenerator() {
  10.         giftList = new ArrayList<>();
  11.     }
  12.     // 增加礼物
  13.     public void addGift(T gift) {
  14.         giftList.add(gift);
  15.     }
  16.     // 随机获取礼物
  17.     public T getGift() {
  18.         Random random = new Random();
  19.         int index = random.nextInt(giftList.size());
  20.         gift = giftList.get(index);
  21.         return gift;
  22.     }
  23. }
复制代码


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

  1. public class BirthdayGiftLottery {
  2.     public static void main(String[] args) {
  3.         // 创建一个GiftGenerator实例,并指定礼物的类型为String
  4.         GiftGenerator<String> giftGenerator = new GiftGenerator<>();
  5.         // 添加一些礼物
  6.         giftGenerator.addGift("Teddy Bear");
  7.         giftGenerator.addGift("Chocolate Box");
  8.         giftGenerator.addGift("Book");
  9.         giftGenerator.addGift("Watch");
  10.         // 随机抽取一个礼物
  11.         String gift = giftGenerator.getGift();
  12.         // 输出抽取到的生日礼物
  13.         System.out.println("The randomly selected birthday gift is: " + gift);
  14.     }
  15. }
复制代码


在这个例子中,我们创建了一个GiftGenerator实例,并添加了一些字符串类型的礼物。然后,我们使用getGift()方法随机抽取一个礼物,并输出抽取到的礼物。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-3 11:19

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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