java泛型——泛型类、泛型方法、泛型接口
泛型
- Java 泛型
 - Java 泛型是什么
 - 泛型類
 - 泛型類的格式
 - 泛型類舉例
 
- 泛型方法
 - 泛型方法的格式
 - 泛型方法舉例
 
- 泛型接口
 - 泛型接口的格式
 - 泛型接口舉例
 
Java 泛型
Java 泛型是什么
官方定義:
泛型是Java SE 1.5的新特性,泛型的本質(zhì)就是參數(shù)化類型,也就是說所操作的數(shù)據(jù)類型被指定為一個參數(shù)
這種參數(shù)類型可以用在類、接口和方法的創(chuàng)建中,分別成為泛型類、泛型接口、泛型方法
優(yōu)缺點:
? 優(yōu)點:可以不用再類型轉(zhuǎn)換了
? 缺點:降低了代碼的可讀性
泛型類
泛型類:當(dāng)一個類要操作的引用數(shù)據(jù)類型不確定的時候,可以給該類定義一個形參,用到這個類的時候,通過傳遞類型參數(shù)的形式,來確定要操作的具體的對象類型。在JDK1.5之前,為了提高代碼的通用性,通常把類型定義為所有類的父類型:Object,這樣做有兩大弊端:1、在具體操作的時候要進行強制類型轉(zhuǎn)換;2、這樣還是指定了類型,還是不靈活,對具體類型的方法未知且不安全
泛型類的格式
泛型類的格式:在類名后面聲明類型變量,泛型類可以有多個類型變量
如:
public class Myname <K,V>什么時候使用泛型類:只要類中操作的引用數(shù)據(jù)類型不確定,就可以定義泛型類。通過使用泛型類,可以省去強制類型轉(zhuǎn)換的類型轉(zhuǎn)換異常的麻煩
泛型類舉例
泛型類:
public class FanXingLei<T> {public T getE(T t){return t;} }學(xué)生類:
public class Student {public String name;public int age;public String getName() {return name; }public void setName(String name) {this.name = name; }public int getAge() {return age; }public void setAge(int age) {this.age = age; }public Student(String name, int age) {super();this.name = name;this.age = age; }@Override public String toString() {return "Student [name=" + name + ", age=" + age + "]"; } }教師類:
public class Teacher {public String name; public int age; public String getName() {return name; } public void setName(String name) {this.name = name; } public int getAge() {return age; } public void setAge(int age) {this.age = age; } public Teacher(String name, int age) {super();this.name = name;this.age = age; } @Override public String toString() {return "Teacher [name=" + name + ", age=" + age + "]"; } }測試類:
public static void main(String[] args) {FanXingLei<Student> stu=new FanXingLei<Student>();Student student=new Student("小明", 20);Teacher teacher=new Teacher("小紅", 27);FanXingLei<Teacher> tu=new FanXingLei<Teacher>();System.out.println(stu.getE(student).getClass().getName());System.out.println(tu.getE(teacher).getClass().getName());System.out.println(stu.getE(student).toString());System.out.println(tu.getE(teacher).toString());} }打印結(jié)果:
rj.cd.Fx01.Student rj.cd.Fx01.Teacher Student [name=小明, age=20] Teacher [name=小紅, age=27]泛型方法
目的:泛型方法也是為了調(diào)高代碼的重用性和程序安全性。編程原則:盡量設(shè)計泛型方法解決問題,如果設(shè)計泛型方法可以取代泛型整個類,應(yīng)該采用泛型方法(如果泛型方法可以搞定就不建議使用泛型類)。
泛型方法的格式
泛型方法的格式
泛型方法的格式:類型變量放在修飾符后面和返回類型前面,如:
public static <E> E getMax(T...in) //三個點表示為多個參數(shù)泛型方法舉例
public class Test {public static void main(String[] args) {print("你好");print(200);print(true);print(99.9); }public static <T> void print(T t) {System.out.println(t); }}打印結(jié)果:
你好 200 true 99.9泛型接口
將泛型原理用于接口實現(xiàn)中,就是泛型接口。
泛型接口的格式
泛型接口的格式:泛型接口格式類似于泛型類的格式,接口中的方法的格式類似于泛型方法的格式
public interface IFanXingJieKou<T>泛型接口舉例
泛型接口類:
public interface IFanXingJieKou <T> {public T read(T t); }泛型接口實現(xiàn)類:
public class FanXingImpl implements IFanXingJieKou<String> {@Overridepublic String read(String t) {return t;} }測試接口類:
public class Test {public static void main(String[] args) {IFanXingJieKou<String> fK=new FanXingImpl();System.out.println(fK.read("hello"));} }打印結(jié)果:
hello小結(jié):泛型修飾的無論是變量,函數(shù),類,其目的是起到一個站位(書寫校驗通過)的作用,其本身是沒有什么確切的含義
總結(jié)
以上是生活随笔為你收集整理的java泛型——泛型类、泛型方法、泛型接口的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
                            
                        - 上一篇: php登陆飞信,用PHP模拟登录WAP飞
 - 下一篇: linux 飞信机器人 下载,飞信机器人