之前给大家介绍了一下java泛型集合方面的内容,下面要给大家介绍的就是泛型类方面的知识,一起通过简单的文章来进行一下了解吧。
泛型类
除了能够定义泛型集合之外,还能够直接限定泛型类的类型参数。
语法格式:
public class class_name<data_type1,data_type2,…>{}
在这当中,class_name表示类的名称,data_ type1等表示类型参数。
Java泛型支持声明一个以上的类型参数,只要将类型用逗号隔开就可以了。
泛型类一般用于类当中的属性类型不确定的情况下。
在声明属性的时候,使用下面的语句:
private data_type1 property_name1; private data_type2 property_name2;
这个语句当中的data_type1和类声明当中的data_type1表示的是同一种数据类型。
示例:
在实例化泛型类的时候,需要指明泛型类中的类型参数,并赋予泛型类属性相应类型的值。
例:
下面的示例代码创建了一个表示学生的泛型类,这个类当中包括3个属性,分别是姓名、年龄和性别。
public class Stu < N, A, S > { private N name; // 姓名 private A age; // 年龄 private S sex; // 性别 // 创建类的构造函数 public Stu(N name, A age, S sex) { this.name = name; this.age = age; this.sex = sex; } // 下面是上面3个属性的setter/getter方法 public N getName() { return name; } public void setName(N name) { this.name = name; } public A getAge() { return age; } public void setAge(A age) { this.age = age; } public S getSex() { return sex; } public void setSex(S sex) { this.sex = sex; } }
接着创建测试类。
在测试类当中调用Stu类的构造方法实例化Stu对象,并给这个类当中的3个属性赋予初始值,最终需要输出学生信息。
测试类的代码实现:
public class Test14 { public static void main(String[] args) { Stu < String, Integer, Character > stu = new Stu < String, Integer, Character > ("张晓玲", 28, '女'); String name = stu.getName(); Integer age = stu.getAge(); Character sex = stu.getSex(); System.out.println("学生信息如下:"); System.out.println("学生姓名:" + name + ",年龄:" + age + ",性别:" + sex); } }
程序的运行结果:
学生信息如下: 学生姓名:张晓玲,年龄:28,性别:女
在这个程序的Stu类当中,定义了3个类型参数,分别使用N、A和S来代替,同时实现了这3个属性的setter/getter方法。
在主类当中,调用Stu类的构造函数创建了Stu类的对象,同时指定3个类型参数,分别为 String、Integer和Character。
在获取学生姓名、年龄和性别的时候,不需要类型转换,程序隐式地将Object类型的数据转换为相应的数据类型。
关于泛型类的内容就介绍到这里了,更多相关常见问题,可以继续的关注奇Q工具网来进行了解哦。
推荐阅读: