JAVA上机任务八(泛型)

这段代码展示了泛型在Java中的使用,创建了一个可以存储不同类型宠物的`People`类,以及一个播放不同歌曲的`Player`类。`Player`类使用`LinkedList`存储`Song`对象,并提供了添加、删除和播放歌曲的功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

泛型

泛型是带一个或多个类型参数(type parameters)的类或者接口, 其声明的格式为:

                                        class 类名称<泛型列表>

泛型列表中可以有任意多个泛型,中间用逗号间隔,它们可以是任何 类或接口,但不能是基本类型数据。

第一题

源代码:

public class shangji08 {
    public static class People<E> {
        private E pets;
        void set(E e){
            this.pets = e;
        }
        E showPets(){
            return pets;
        }
    }
    public static class Dog {
        String name ;
        Dog(String name){
            this.name = name;
        }
    }
    public static class Cat {
        String name ;
        Cat(String name){
            this.name = name;
        }
    }
    public static void main(String[] args) {
        People<Dog> dog = new People<Dog>();
        dog.set(new Dog("xiugou"));
        System.out.println("The name of this pet is " + dog.showPets().name);
        People<Cat> cat = new People<Cat>();
        cat.set(new Cat("maomao"));
        System.out.println("The name of this pet is " + cat.showPets().name);
    }
}

第二题

源代码:

import java.util.LinkedList;

public class shangji0802{
    public static void main(String[] args) {
        Player bofangqi = new Player();
        Song s1 = new Song("我是老6", "wjh");
        Song s2 = new Song("姬霓太美", "刀刀");
        bofangqi.addSong(s1);
        bofangqi.play(1);
        bofangqi.addSong(s2);
        bofangqi.play(2);
        bofangqi.removeSong(2);
        bofangqi.play(2);
    }
}
class Player{
    LinkedList<Song> songList = new LinkedList<>();
    void addSong(Song s){
        songList.add(s);
    }
    void removeSong(int i ){
        songList.remove(i-1);
    }
    void play(int i){
        if (i > songList.size()){
            System.out.println("超出歌单长度!");
        }
        else {
            System.out.println("第" + i + "首歌的歌手为:" + songList.get(i-1).singer + "   歌名为:" +songList.get(i-1).name);
        }
    }
}
class Song{
    String name;
    String singer;
    public Song(String name, String singer) {
        this.name = name;
        this.singer = singer;
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值