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

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

认识泛型

泛型介绍

泛型类介绍

泛型类介绍

泛型接口介绍

泛型接口

代码

代码一:认识泛型

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

相关文章:

  • 如何深入学习MATLAB的高级应用?
  • java的面向对象思想
  • VASP+机器学习快速收敛AIMD
  • PyTorch分布式训练深度解析与实战案例
  • 互联网大厂Java面试:从Spring到微服务的全面探讨
  • Maven 插件扩展点与自定义生命周期
  • Linux的静态库 共享库 进程 主函数的参数
  • 【C语言练习】046. 编写插入排序算法
  • JSP与JSTL:EL表达式与MVC分层模式的完美结合
  • 环形缓冲区 ring buffer 概述
  • Java的线程通信机制是怎样的呢?
  • 数据类型转换
  • Node.js 实战四:数据库集成最佳实践
  • 回溯法理论基础 LeetCode 77. 组合 LeetCode 216.组合总和III LeetCode 17.电话号码的字母组合
  • 数据库故障排查指南:解决常见问题,保障数据安全与稳定
  • 科技晚报 AI 速递:今日科技热点一览 丨 2025 年 5 月 17 日
  • 面向 C 语言项目的系统化重构实战指南
  • 鸿蒙北向源码开发: 检查应用接口dts文件api规范性
  • 望闻问切AI辅助系统(中医门诊病历智能生成工具)
  • 游戏引擎学习第289天:将视觉表现与实体类型解耦
  • 【Java ee初阶】HTTP(4)
  • MakeFile
  • 面向对象详解和JVM底层内存分析
  • 实验七 基于Python的数字图像水印算法
  • Captiks无线惯性动捕及步态分析系统:高频采样+400g超宽动态量程,赋能医疗康复、竞技体育、工业检测三大领域,运动轨迹零盲区追踪!”
  • linux-软件的安装与部署、web应用部署到阿里云
  • 使用glsl 来做视频矫正
  • wifiactivity 界面 要在哪里注册,注销广播?onResume() vs onPause() 的本质区别
  • 电动调节V型球阀:行业应用与材质选择全解析
  • CSS高级技巧