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

认识泛型

泛型类介绍

泛型接口介绍

代码

代码一:认识泛型

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) {
        //目标:掌握泛型接口的定义和使用
        //场景:系统需要处理老师和学生的数据,需要提供两个功能,根据名称查询数据

    }
}
相关推荐
阿昭L5 小时前
Windows堆dword shoot
windows·安全·漏洞·堆溢出
love530love5 小时前
Anaconda Navigator 升级后图形界面启动失败故障修复实录
人工智能·windows·python·anaconda·navigator
LAM LAB6 小时前
【Quicker】拆分文本,按行读取文本执行循环写入
windows·quicker
许彰午17 小时前
30_Java Stream流操作全解
java·windows·python
星间都市山脉19 小时前
Android STS(Security Test Suite)完整介绍与测试流程
android·java·linux·windows·ubuntu·android studio·androidx
xiaoliuliu1234521 小时前
Sketchpad 5.0.6 几何画板安装版配置教程 Windows版:部署+桌面快捷方式创建指南
windows
惊鸿一博1 天前
网络端口开放访问权限_Windows 11 上确保防火墙允许指定端口如3001可被访问
网络·windows
软件无线电小方圆1 天前
Windows下基于PyQt6上位机开发环境搭建
windows
蜀道山老天师1 天前
OpenClaw Skills 技能开发 + 企业运维全场景实战(进阶篇)
人工智能·windows·microsoft
舟遥遥娓飘飘1 天前
文稿起草系统,离线学习写作人的“思维 + 风格“,按学到的特征起草新文稿,再用反馈闭环持续提升
windows·学习