Java泛型编程
来源:互联网 发布:mac直播音效软件下载 编辑:程序博客网 时间:2024/06/14 16:05
为什么要使用泛型
这是因为通过泛型可以定义类型安全的数据结构(类型安全),而无须使用实际的数据类型(可扩展)。这能够显著提高性能并得到更高质量的代码(高性能),因为您可以重用数据处理算法,而无须复制类型特定的代码(可重用)。在概念上,泛型类似于 C++ 模板,但是在实现和功能方面存在明显差异。
泛型的基本应用
泛型可以解决数据类型的安全性问题,其主要原理是在类声明时通过一个标识表示类中某个属性的类型或者是某个方法的返回值及参数类型。这样在类声明或实例化时只要指定好需要的具体的类型即可。
interface Info{ // 只有此接口的子类才是表示人的信息}class Contact implements Info{ // 表示联系方式 private String address ; // 联系地址 private String telphone ; // 联系方式 private String zipcode ; // 邮政编码 public Contact(String address,String telphone,String zipcode){ this.setAddress(address) ; this.setTelphone(telphone) ; this.setZipcode(zipcode) ; } public void setAddress(String address){ this.address = address ; } public void setTelphone(String telphone){ this.telphone = telphone ; } public void setZipcode(String zipcode){ this.zipcode = zipcode ; } public String getAddress(){ return this.address ; } public String getTelphone(){ return this.telphone ; } public String getZipcode(){ return this.zipcode ; } public String toString(){ return "联系方式:" + "\n" + "\t|- 联系电话:" + this.telphone + "\n" + "\t|- 联系地址:" + this.address + "\n" + "\t|- 邮政编码:" + this.zipcode ; }};class Introduction implements Info{ private String name ; // 姓名 private String sex ; // 性别 private int age ; // 年龄 public Introduction(String name,String sex,int age){ this.setName(name) ; this.setSex(sex) ; this.setAge(age) ; } public void setName(String name){ this.name = name ; } public void setSex(String sex){ this.sex = sex ; } public void setAge(int age){ this.age = age ; } public String getName(){ return this.name ; } public String getSex(){ return this.sex ; } public int getAge(){ return this.age ; } public String toString(){ return "基本信息:" + "\n" + "\t|- 姓名:" + this.name + "\n" + "\t|- 性别:" + this.sex + "\n" + "\t|- 年龄:" + this.age ; }};class Person<T extends Info>{ private T info ; public Person(T info){ // 通过构造方法设置信息属性内容 this.setInfo(info); } public void setInfo(T info){ this.info = info ; } public T getInfo(){ return this.info ; } public String toString(){ // 覆写Object类中的toString()方法 return this.info.toString() ; }};public class GenericsDemo33{ public static void main(String args[]){ Person<Introduction> per = null ; // 声明Person对象 per = new Person<Introduction>(new Introduction("李某人","男",23)) ; System.out.println(per) ; }};
阅读全文
0 0
- Java 泛型编程
- Java泛型编程
- Java泛型编程
- Java 泛型编程
- Java泛型编程
- java 泛型编程
- Java泛型编程
- java泛型编程
- java 泛型编程
- java泛型编程
- java:泛型编程
- Java泛型编程
- Java泛型编程
- java泛型编程
- Java泛型编程
- Java泛型编程指南
- Java泛型编程指南
- 浅谈Java泛型编程
- PCA与SVD学习之路
- 求1+1/2!+1/3!+1/4!......1/m!的值
- 人工智能实战2——从0开始手写符号识别
- 【c语言小项目】简单计算器
- c++指针【C++】
- Java泛型编程
- React-Native之Hello World
- Hdu-6212 Zuma(区间DP)
- 学渣课堂笔记--编译原理(1)
- 【ORACLE】手工建库+RMAN Catalog创建、配置和使用
- gpio子系统和pinctrl子系统(上)
- 最大最小字符串问题
- php链接数据库出现乱码
- OpenSim教程一——OpenSim 入门介绍