day15 java语言中的-------泛型
一、泛型概述:
“泛型”这个概念大家可能有些陌生,其实不然,泛型直面意思你可以理解为多种数据类型、可变的数据类型、不同需求时的数据类型等等。在开发中,泛型的使用时很常见的,同时包含泛型类和泛型方法两种。掌握好他们之间的关系,对你在逻辑架构上有很大的帮助。下面就来看看泛型究竟是怎么一会事儿。
二、泛型【Generic】
就是在定义一个类的时候不定义相关的数据类型,等到我们需要使用这个类的时候才定义相关的数据类型
针对八种基本数据类型,每一种数据类型都定义一个wrapper类进行了相对应的封装。
byte;short;int;long;float;double;char;boolean--->这是基本数据类型Byte;Short;Integer;Long;Float;Double;Character;Boolean--->对应的封装器类
1、定义一个泛型:泛型的定义其实很简单。在一个类的类名后面添加一个砖石符号及数据类型就是定义的一个泛型。例如
class Student<T>{ }
这个“<T>”就是一个任意的泛型,是我自己定义的。这个就是他的结构。我在实例中也有讲。
2、设置get和set方法访问私有的成员变量
get方法:在Java语言中这个你必须要懂,实际上是对private访问说明符权限的一个特例,这样来说吧!private说明符修饰一个成员变量以后,这个成员变量就变成了私有化,其他不能使用这个成员变量。当使用get方法以后,这个成员变量就能够被获取到,读取到,就不在是私有的。
set方法:与get方法一样。是对private说明符的一个破除,通过set方法就能够对私有化的成员变量进行修改、更改。
通俗一点:就像一间屋子被封闭完全以后,我们在墙上凿出一个门。我们通过这个门可以从房间里面拿东西,我们也可以放东西到这个房间里面一样。
懂了吧?
3、定义多个泛型:泛型的定义我们可以直接定义多种类型,可以一次性在类名的后面定义多个。如下:
class Student<X,Y,Z>{ }
4、定义泛型方法:这个意思就是说在类里面同样可以定义一个泛型放法,例如
class Student<X,Y,Z>{ public <T> void display(){ //********** } }
三、具体整合实例
package www.com.c2; //1、定义的一个泛型类 class Student01<T>{//T就是这个类的类型,但是可以在下面创建对象的时候相关的数据类型来定义泛型即可! //私有成员:私有化以后不能直接操作这个变量,但是设置了相关的get和set方法以后,就可以直接使用这个变量 private T name; //设置get访问器 public T getName() { return name; } //设置set访问器 public void setName(T name) { this.name = name; } } //2、普通类使用get和set方法访问设置私有成员 class Student02{ //私有成员:私有化以后不能直接操作这个变量,但是设置了相关的get和set方法以后,就可以直接使用这个变量 private String name; //设置get访问器 public String getName() { return name; } //设置set访问器 public void setName(String name) { this.name = name; } } //3、定义多个泛型 class Student03<X,Y>{//这个是泛型类 //定义的私有变量 private X name; private Y age; //生成对应的get和set方法。注意这个方法是泛型方法 public X getName() { return name; } public void setName(X name) { this.name = name; } public Y getAge() { return age; } public void setAge(Y age) { this.age = age; } } //4、定义泛型方法 class Student04{ public <T> void display(T a){ System.out.println(a+"这个是定义的泛型方法!"); } } //这个是主类 public class Generic { public static void main(String[] args) { //-----------实例使用泛型-------- Student01<Object> stu1 = new Student01<Object>(); //Object类是所有类的父类。所有的数据类型都可以不断的定义。 //但是,如果这个object改为基本数据类型对应的封装类,就只能够使用这种数据类型 stu1.setName(001);//这个是使用的整数类型 stu1.setName(10.0f);//这个是使用的浮点型 stu1.setName("dzx01");//这个是使用的String类型 System.out.println(stu1.getName()); //-----------实例使用get和set访问-------- Student02 stu2 = new Student02(); stu2.setName("dzx02");//通过set方法设置值 System.out.println(stu2.getName());//通过get方法获取到 //-----------实例使用多个泛型-------- Student03<String,Integer> stu3 = new Student03<String,Integer>(); //在这里的时候才定义相应的数据类型即可!这样就可以保证数据的安全性 stu3.setName("dzx03"); stu3.setAge(20); System.out.println(stu3.getName()); System.out.println(stu3.getAge()); //-----------实例使用泛型方法-------- Student04 stu4 = new Student04(); stu4.display("display");//根据你传的值会自动判断是什么数据类型 } }
四、结束语:
到这里你应该知道什么是泛型了吧?学好泛型对你学集合的时候很重要。所以所你自己先体会一下我写的这个实例吧!很关键的,吃透了你才会真明白。
本文出自 “程序猿” 博客,转载请与作者联系!
原文地址:http://dzx123.blog.51cto.com/13270347/1974388