日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java泛型——泛型类、泛型方法、泛型接口

發布時間:2023/12/18 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java泛型——泛型类、泛型方法、泛型接口 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

泛型

  • Java 泛型
    • Java 泛型是什么
    • 泛型類
      • 泛型類的格式
      • 泛型類舉例
    • 泛型方法
      • 泛型方法的格式
      • 泛型方法舉例
    • 泛型接口
      • 泛型接口的格式
      • 泛型接口舉例

Java 泛型

Java 泛型是什么

官方定義:

泛型是Java SE 1.5的新特性,泛型的本質就是參數化類型,也就是說所操作的數據類型被指定為一個參數

這種參數類型可以用在類、接口和方法的創建中,分別成為泛型類、泛型接口、泛型方法

優缺點:

? 優點:可以不用再類型轉換了

? 缺點:降低了代碼的可讀性

泛型類

泛型類:當一個類要操作的引用數據類型不確定的時候,可以給該類定義一個形參,用到這個類的時候,通過傳遞類型參數的形式,來確定要操作的具體的對象類型。在JDK1.5之前,為了提高代碼的通用性,通常把類型定義為所有類的父類型:Object,這樣做有兩大弊端:1、在具體操作的時候要進行強制類型轉換;2、這樣還是指定了類型,還是不靈活,對具體類型的方法未知且不安全

泛型類的格式

泛型類的格式:在類名后面聲明類型變量,泛型類可以有多個類型變量

如:

public class Myname <K,V>

什么時候使用泛型類:只要類中操作的引用數據類型不確定,就可以定義泛型類。通過使用泛型類,可以省去強制類型轉換的類型轉換異常的麻煩

泛型類舉例

泛型類:

public class FanXingLei<T> {public T getE(T t){return t;} }

學生類:

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());} }

打印結果:

rj.cd.Fx01.Student rj.cd.Fx01.Teacher Student [name=小明, age=20] Teacher [name=小紅, age=27]

泛型方法

目的:泛型方法也是為了調高代碼的重用性和程序安全性。編程原則:盡量設計泛型方法解決問題,如果設計泛型方法可以取代泛型整個類,應該采用泛型方法(如果泛型方法可以搞定就不建議使用泛型類)。

泛型方法的格式

泛型方法的格式

泛型方法的格式:類型變量放在修飾符后面和返回類型前面,如:

public static <E> E getMax(T...in) //三個點表示為多個參數

泛型方法舉例

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); }}

打印結果:

你好 200 true 99.9

泛型接口

將泛型原理用于接口實現中,就是泛型接口。

泛型接口的格式

泛型接口的格式:泛型接口格式類似于泛型類的格式,接口中的方法的格式類似于泛型方法的格式

public interface IFanXingJieKou<T>

泛型接口舉例

泛型接口類:

public interface IFanXingJieKou <T> {public T read(T t); }

泛型接口實現類:

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"));} }

打印結果:

hello

小結:泛型修飾的無論是變量,函數,類,其目的是起到一個站位(書寫校驗通過)的作用,其本身是沒有什么確切的含義

總結

以上是生活随笔為你收集整理的java泛型——泛型类、泛型方法、泛型接口的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。