• java泛型-泛型类,泛型接口,常用形式


    泛型简单使用:

     1 package com.etc;
     2 
     3 import java.util.ArrayList;
     4 import java.util.List;
     5 /*
     6    泛型就相当于<>一个标签,泛化类型,一般用于规定集合的数据存放类型。
     7    instanceof方法是用来判断某个对象是否为某一个类的实例
     8  
     9  */
    10 public class Test {
    11 
    12     public static void main(String[] args) {
    13 
    14         List<String> list=new ArrayList<String>();
    15         list.add("abc");
    16         //无法存放除String类型的数据,较为安全,会进行类型检查
    17         //list.add(1);
    18         //取数据较为省心
    19         System.out.println(list.get(0));
    20         
    21     }
    22 
    23 }

    1.泛型类:

     1 package com.test;
     2 /*
     3 自定义泛型类的使用,尽量用大写字母表示
     4 T -> Type
     5 K V ->Key Value
     6 尽量见名知其意
     7 泛型不能用于静态的属性
     8  */
     9 public class Teacher<T> {
    10     
    11     public T name;
    12 //    private T id;
    13 
    14     public Teacher(T name) {
    15         super();
    16         this.name = name;
    17     }
    18     
    19     public Teacher() {
    20         super();
    21     }
    22 
    23     public T getName() {
    24         return name;
    25     }
    26     public void setName(T name) {
    27         this.name = name;
    28     }
    29 
    30 
    31 }

    泛型类的使用:

     1 package com.test;
     2 /*
     3    自定义泛型类的使用,在声明时需要指定具体的类型,不能为基本类型
     4  */
     5 public class TestTeacher {
     6 
     7     public static void main(String[] args) {
     8 
     9         Teacher<String> list=new Teacher<String>();
    10         list.setName("皮卡丘");
    11         System.out.println(list.getName());
    12 
    13     }
    14 
    15 }

    效果截图:

    2.泛型接口:

     1 package com.test;
     2 
     3 public interface Person <T>{
     4     //泛型不能用于全局变量前
     5     /*public static final 编译时自动添加*/ 
     6     int MAX_VALUE=1;
     7     /*public abstract 编译时自动添加*/ 
     8     T compare(T t);
     9 
    10 }

    泛型接口的实现:

     1 package com.test;
     2 //泛型接口的实现,必须指定泛型的类型
     3 public class TestPerson implements Person<String> {
     4 
     5     public static void main(String[] args) {
     6         
     7         String t="I  like codes very much!!!!";
     8         TestPerson ts=new TestPerson();
     9         System.out.println(ts.compare(t));
    10 
    11     }
    12 
    13     @Override
    14     public String compare(String t) {
    15         return t;
    16     }
    17 
    18 }

    效果截图:

    3.常用泛型形式:

    (1)Student.java

     1 package com.test;
     2 
     3 import java.text.DateFormat;
     4 import java.text.ParseException;
     5 import java.text.SimpleDateFormat;
     6 import java.util.Date;
     7 
     8 public class Student {
     9     
    10     public String name;
    11     public int id;
    12     public Date birth;
    13     
    14     public Student(String name, int id, String birth) {
    15         super();
    16         this.name = name;
    17         this.id = id;
    18         DateFormat format=new SimpleDateFormat("yyyy-MM");
    19         try {
    20             this.birth = format.parse(birth);
    21         } catch (ParseException e) {
    22             e.printStackTrace();
    23         }
    24     }
    25     public String getName() {
    26         return name;
    27     }
    28     public void setName(String name) {
    29         this.name = name;
    30     }
    31     public int getId() {
    32         return id;
    33     }
    34     public void setId(int id) {
    35         this.id = id;
    36     }
    37     public Date getBirth() {
    38         return birth;
    39     }
    40     public void setBirth(Date birth) {
    41         this.birth = birth;
    42     }
    43     
    44     
    45     
    46 }

    (2)TestStudent.java

     1 package com.test;
     2 
     3 import java.util.ArrayList;
     4 import java.util.List;
     5 
     6 public class TestStudent {
     7 
     8     public static void main(String[] args) {
     9         
    10         List<Student> list=new ArrayList<Student>();
    11         Student stu1=new Student("张三",1,"1998-03");
    12         Student stu2=new Student("李四",2,"1998-04");
    13         list.add(stu1);
    14         list.add(stu2);
    15         System.out.println(list.get(0).getName()+" "+list.get(0).getId()+" "+list.get(0).getBirth());
    16         System.out.println(list.get(1).getName()+" "+list.get(1).getId()+" "+list.get(1).getBirth());
    17 
    18     }
    19 
    20 }

    效果截图:

  • 相关阅读:
    笔记
    创建和使用URL访问网上资源
    File
    event_1:事件注册
    3_3:创建 元素节点
    动态创建表格
    留言删除案例
    3_2:操作节点 [ 增 删 复制 ]
    5:to do list
    仿新浪下拉菜单
  • 原文地址:https://www.cnblogs.com/weekstart/p/10773340.html
Copyright © 2020-2023  润新知