当前位置: 首页 > news >正文

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

认识泛型

泛型介绍

泛型类介绍

泛型类介绍

泛型接口介绍

泛型接口

代码

代码一:认识泛型

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类(泛型类)

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类(泛型类)

package com.generics_class;public class MyClass2<E,T> {public void get(E e,T t){}
}

MyClass3类(泛型类)

package com.generics_class;public class Myclass3<E extends Animal> {}

Animal类(父类)

package com.generics_class;public class Animal {
}

Cat(子类继承Animal)

package com.generics_class;public class Cat extends Animal {
}

Test类(主程序类)

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(泛型接口)

package com.generics_interface;import java.util.ArrayList;public interface Data<T> {void add(T t);ArrayList<T> getByName(String name);
}

Student(学生类)

package com.generics_interface;public class Student {
}

Teacher(老师类)

package com.generics_interface;public class Teacher {
}

StudentData (实现Data接口的类)

package com.generics_interface;import java.util.ArrayList;public class StudentData implements Data<Student>{@Overridepublic void add(Student student) {}@Overridepublic ArrayList<Student> getByName(String name) {return null;}
}

StudentData (实现Data接口的类)

package com.generics_interface;import java.util.ArrayList;public class TeacherData implements Data<Teacher>{@Overridepublic void add(Teacher teacher) {}@Overridepublic ArrayList<Teacher> getByName(String name) {return null;}
}

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

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

相关文章:

  • php fiber 应用
  • OpenCV透视变换
  • Java 应用如何实现 HTTPS:加密数据传输的实用指南
  • Ankr:Web3基础设施的革新者
  • 【第二篇】 初步解析Spring Boot
  • 【Python 算法零基础 3.递推】
  • 防范Java应用中的恶意文件上传:确保服务器的安全性
  • 【Redis】redis用作缓存和分布式锁
  • Docker常见命令解读
  • EXO分布式部署deepseek r1
  • 机器学习 KNN算法
  • 智慧水务关键一环:Profinet转Modbus TCP网关驱动供水系统高效互联
  • 计算机视觉与深度学习 | Python实现EMD-SSA-VMD-LSTM-Attention时间序列预测(完整源码和数据)
  • 【深度学习新浪潮】大模型时代,我们还需要学习传统机器学习么?
  • [system-design] ByteByteGo_Note Summary
  • 大型语言模型中的QKV与多头注意力机制解析
  • gem5-gpu教程 第十章 关于topology 的Mesh network
  • Spring Security 集成指南:避免 CORS 跨域问题
  • Axure制作可视化大屏动态滚动列表教程
  • 【开源Agent框架】Suna架构设计深度解析与应用实践
  • 竞彩湃|足总杯决赛或有冷门,德甲欧冠资格之争谁笑到最后
  • 法律顾问被控配合他人诈骗酒店资产一审判8年,二审辩称无罪
  • 一个留美学生的思想转向——裘毓麐的《游美闻见录》及其他
  • “80后”萍乡市安源区区长邱伟,拟任县(区)委书记
  • 定制基因编辑疗法治愈罕见遗传病患儿
  • 把中国声音带向世界,DG和Blue Note落户中国