第八节第四部分:认识泛型、泛型类、泛型接口

认识泛型

泛型类介绍

泛型接口介绍

代码

代码一:认识泛型

java 复制代码
package com.generics;

import java.util.ArrayList;

public class Test {
    public static void main(String[] args) {
        //认识泛型
        ArrayList list = new ArrayList();
        list.add("JAVA1");
        list.add("JAVA2");
        list.add("JAVA3");
        list.add(new Cat());

        for (int i = 0; i < list.size(); i++) {
            String s = (String) list.get(i);
            //System.out.println(s);//依然会报错,因为Cat类不能转成String类
        }
        System.out.println("==========================");
        ArrayList<String> list1 = new ArrayList();//从JDK1.7开始等号后面不用也加<String>
        list1.add("JAVA1");
        list1.add("JAVA2");
        list1.add("JAVA3");
        for (int i = 0; i < list1.size(); i++) {
           String e = list1.get(i);
            System.out.println(e);
        }
    }

}
class Cat{}

代码二:认识泛型类

MyArrayList类(泛型类)

java 复制代码
package com.generics_class;
//泛型类
public class MyArrayList<E> {
    private Object[] arr = new Object[10];
    private int size = 0;//记录当前位置的

    public boolean add(E e) {
        arr[size++] = e;
        return true;
    }

    public E get(int index) {
        return (E) arr[index];
    }
}

MyClass2类(泛型类)

java 复制代码
package com.generics_class;

public class MyClass2<E,T> {
    public void get(E e,T t){

    }
}

MyClass3类(泛型类)

java 复制代码
package com.generics_class;

public class Myclass3<E extends Animal> {

}

Animal类(父类)

java 复制代码
package com.generics_class;

public class Animal {
}

Cat(子类继承Animal)

java 复制代码
package com.generics_class;

public class Cat extends Animal {
}

Test类(主程序类)

java 复制代码
package com.generics_class;

public class Test {
    //掌握泛型类的定义和使用
    public static void main(String[] args) {
        MyArrayList<String> list = new MyArrayList<>();
        list.add("JAVA1");
        list.add("JAVA2");
        list.add("JAVA3");

        String s = list.get(1);
        System.out.println(s);


        MyClass2<String,String> c2 = new MyClass2<>();

        Myclass3<Cat> c3 = new Myclass3<>();


    }

}

代码三:认识泛型接口

Data(泛型接口)

java 复制代码
package com.generics_interface;

import java.util.ArrayList;

public interface Data<T> {
    void add(T t);
    ArrayList<T> getByName(String name);
}

Student(学生类)

java 复制代码
package com.generics_interface;

public class Student {
}

Teacher(老师类)

java 复制代码
package com.generics_interface;

public class Teacher {
}

StudentData (实现Data接口的类)

java 复制代码
package com.generics_interface;

import java.util.ArrayList;

public class StudentData implements Data<Student>{
    @Override
    public void add(Student student) {

    }

    @Override
    public ArrayList<Student> getByName(String name) {
        return null;
    }
}

StudentData (实现Data接口的类)

java 复制代码
package com.generics_interface;

import java.util.ArrayList;

public class TeacherData implements Data<Teacher>{
    @Override
    public void add(Teacher teacher) {

    }

    @Override
    public ArrayList<Teacher> getByName(String name) {
        return null;
    }
}

Test类 (介绍此次课程目标)

java 复制代码
package com.generics_interface;

public class Test {
    public static void main(String[] args) {
        //目标:掌握泛型接口的定义和使用
        //场景:系统需要处理老师和学生的数据,需要提供两个功能,根据名称查询数据

    }
}
相关推荐
luyun0202026 小时前
流批了,pdf批量转excel
windows·pdf·excel·figma
vortex57 小时前
在 Windows 系统中安装 Oracle、SQL Server(MSSQL)和 MySQL
windows·oracle·sqlserver
路由侠内网穿透8 小时前
本地部署开源物联网平台 ThingsBoard 并实现外部访问( Windows 版本)
运维·服务器·windows·物联网·开源
Mr.Lu ‍10 小时前
Windows开发,制作开发软件安装程序(二)
windows
skywalk816311 小时前
windows装wsl ubuntu24.04 ,里面装qemu ,然后装mac os (windows也可以直接qemu安装macos)(未实践)
windows·ubuntu·macos·qemu
电脑小白技术14 小时前
u盘安装系统提示“windows无法安装到这个磁盘,选中的磁盘具有gpt分区表”解决方法
windows·gpt·windows无法安装到磁盘
爱隐身的官人21 小时前
Windows配置解压版MySQL5(免安装)
windows·mysql
JH30731 天前
10分钟理解泛型的通配符(extends, super, ?)
java·开发语言·windows
非凡ghost1 天前
MousePlus(鼠标增强工具) 中文绿色版
前端·windows·计算机外设·软件需求
Autism1141 天前
javase-day22-stream
java·开发语言·windows·笔记