zsxxn 发表于 2023-11-12 17:43:23

泛型类

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

isdkz 发表于 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方法来随机获取一个生日礼物并输出。

Mike_python小 发表于 2023-11-12 17:43:55

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);
    }
}

liuhongrun2022 发表于 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()方法随机抽取一个礼物,并输出抽取到的礼物。
页: [1]
查看完整版本: 泛型类