1. 程式人生 > >Java基礎學習——泛型

Java基礎學習——泛型

() logs 調用 自定義 sta class string [] lis

一、泛型方法

 1 /**
 2 
 3 自定義泛型:自定義泛型可以理解為是一個數據類型的占位符,或者理解為是一個數據類型的變量。
 4 
 5 泛型方法:
 6 泛型方法的自定義格式:修飾符<聲明自定義泛型>返回值類型    函數名稱(形參列表)
 7 在自定義泛型方法上泛型的具體類型是調用該方法的時候傳入參數的類型所確定的
 8 
 9  */
10 public class demo1 {
11     public <T>T printf (T t){
12         return t;
13     }
14     public static void main(String[] args) {
15 demo1 demo1 = new demo1(); 16 Integer integer = demo1.printf(100); 17 String string = demo1.printf("wz"); 18 System.out.println(string); 19 System.out.println(integer); 20 } 21 }

二、泛型類

 1 package cn.itcast.generic;
 2 /**
 3  * 在類上自定義泛型 如果創建該類的對象時, 沒有指定泛型的具體類型 那麽默認的是object類型
4 * 在類上自定義的泛型 具體的數據類型是在創建對象的時候指定的 5 * 6 */ 7 public class demo2 { 8 public static void main(String[] args) { 9 MyList<String > myList = new MyList(); 10 myList.add("add"); 11 // myList.add(123); 12 } 13 } 14 15 class MyList<T>{ 16 //創建對象的時候不能直接用泛型直接創建
17 //T[] arr = new T[10]; 18 Object[] arr = new Object[10]; 19 int index = 0; 20 public MyList() { 21 22 } 23 public void add(T oT){ 24 arr[index++] = oT; 25 26 } 27 }

三、泛型接口

 1 /**
 2 
 3 泛型接口:
 4 
 5 泛型接口的定義格式:interface 接口名 <聲明自定義的泛型>{}
 6 在接口上自定義泛型註意事項:
 7 1 在接口上自定義泛型 具體的數據類型是 在實現接口的時候 指定的。
 8 2 如果接口自定義了泛型 在實現該接口的時候沒有指定數據類型 那麽該接口默認 是object類型
 9 
10  如果
11  */
12 
13 interface GenericDao<T>{
14     public void add(T t);
15     
16     public void remove(T t);
17 }
18 
19 public class demo3 implements GenericDao<String >{
20 
21     @Override
22     public void add(String t) {
23         // TODO Auto-generated method stub
24         
25     }
26 
27     @Override
28     public void remove(String t) {
29         // TODO Auto-generated method stub
30         
31     }
32 }
33 class demo4 implements GenericDao{
34 
35     @Override
36     public void add(Object t) {
37         // TODO Auto-generated method stub
38     }
39 
40     @Override
41     public void remove(Object t) {
42         // TODO Auto-generated method stub
43     }
44 }

三、泛型接口

 1 /**
 2 
 3 泛型接口:
 4 
 5 泛型接口的定義格式:interface 接口名 <聲明自定義的泛型>{}
 6 在接口上自定義泛型註意事項:
 7 1 在接口上自定義泛型 具體的數據類型是 在實現接口的時候 指定的。
 8 2 如果接口自定義了泛型 在實現該接口的時候沒有指定數據類型 那麽該接口默認 是object類型
 9 
10  如果
11  */
12 
13 interface GenericDao<T>{
14     public void add(T t);
15     
16     public void remove(T t);
17 }
18 
19 public class demo3 implements GenericDao<String >{
20 
21     @Override
22     public void add(String t) {
23         // TODO Auto-generated method stub
24         
25     }
26 
27     @Override
28     public void remove(String t) {
29         // TODO Auto-generated method stub
30         
31     }
32 }
33 class demo4 implements GenericDao{
34 
35     @Override
36     public void add(Object t) {
37         // TODO Auto-generated method stub
38     }
39 
40     @Override
41     public void remove(Object t) {
42         // TODO Auto-generated method stub
43     }
44 }

Java基礎學習——泛型