本篇通过介绍为什么使用泛型类,什么是泛型类,进一步为以后数据结构的学习打下基础。如有错误,请在评论区指正,让我们一起交流,共同进步!
本文开始
泛型类:通过泛型类我们可以指定我们所需要的类型,方便我们使用.
当我们想要定义一个类,类中存在一个数组,想在数组中存取任意元素,我们应该想到什么呢?
会想到Object类,它是所有类的父类,我们能根据object任意存储,但是我们获取元素,去使用该元素时又出现困难,我们存储了各种类型(double,string,int…),例如我们想要计算加减等操作,面对大量存储的元素,我们不可能记忆每个元素的类型,想要强制转换这种想法也失败了,这就是为什么我们使用泛型类。
错误思想代码演示:
class Array {public Object[] obj = new Object[3];//获取pos位置的值返回public Object getObj(int pos) {return obj[pos];}//对obj数组进行赋值public void set(int pos,Object val) {obj[pos] = val;}
}
public class Test {public static void main(String[] args) {Array array = new Array();array.set(0,1);array.set(1,"aa");array.set(2,1.0);System.out.println(array.getObj(0));System.out.println(array.getObj(1));System.out.println(array.getObj(2));System.out.println("======================");//计算是需要强制,但对于大量数据会失败,不会记忆取到的数据类型是什么,无法完成强制类型转换int ret = (Integer) array.getObj(0) + 2;System.out.println(ret);}
}
下面会写正确的泛型类代码!
泛型类: 将 类型 作为参数传递给类。使之能够指定我们所需要的类型,方便我们设置参数等操作。
1.语法:类名后加<>,表示该类为泛型类;
①<>括号中存放的是我们想要使用的类型,如果想设置为String,写成 < Sting >即可;
②<>括号中可以存放一个或多个类型,可以使用大写字母E,O,P,T,K,Y等
③<>括号中必须存放引用类型,不可以是基本数据类型
//<>中1个泛型
class Array {public Object[] obj = new Object[3]; ...}//<>中多个泛型
class Array {...}
2.泛型类的特点
①能够检查我们 传递类型是否准确;例如:我们设置为< Integer >,就不能设置字符串类型,浮点数类型等
②当我们获取值时,泛型类会自动转换为我们所需要的类型,设置类型为< String >,在介绍参数时直接用String字符类型接收就可以了。
泛型类代码:
class Array {public Object[] obj = new Object[3];//获取pos位置的值返回public E getObj(int pos) {//数组是Object类型需要返回E类型需要强制转换return (E)obj[pos];}//对obj数组进行赋值public void set(int pos,E val) {obj[pos] = val;}
}public class Test {public static void main(String[] args) {//<>括号中设置为什么类型,数组中就可以设置为什么类型Array array = new Array<>();//整形array.set(0,1);array.set(1,2);System.out.println(array.getObj(0));System.out.println(array.getObj(1));System.out.println("======================");Array array2 = new Array<>();//字符串类型array2.set(0,"aa");array2.set(1,"bb");System.out.println(array2.getObj(0));System.out.println(array2.getObj(1));}
}
代码结果:
✨✨✨各位读友,本篇分享到内容如果对你有帮助给个👍赞鼓励一下吧!!
感谢每一位一起走到这的伙伴,我们可以一起交流进步!!!一起加油吧!!!