標籤:day15 java 語言中的-----泛型
day15 java語言中的-------泛型
一、泛型概述:
“泛型”這個概念大家可能有些陌生,其實不然,泛型直面意思你可以理解為多種資料類型、可變的資料類型、不同需求時的資料類型等等。在開發中,泛型的使用時很常見的,同時包含泛型類和泛型方法兩種。掌握好他們之間的關係,對你在邏輯架構上有很大的協助。下面就來看看泛型究竟是怎麼一會事兒。
二、泛型【Generic】
就是在定義一個類的時候不定義相關的資料類型,等到我們需要使用這個類的時候才定義相關的資料類型
針對八種基礎資料型別 (Elementary Data Type),每一種資料類型都定義一個wrapper類進行了相對應的封裝。
byte;short;int;long;float;double;char;boolean--->這是基礎資料型別 (Elementary Data Type)
Byte;Short;Integer;Long;Float;Double;Character;Boolean--->對應的封裝器類
1、定義一個泛型:泛型的定義其實很簡單。在一個類的類名後面添加一個磚石符號及資料類型就是定義的一個泛型。例如
class Student<T>{}
這個“<T>”就是一個任意的泛型,是我自己定義的。這個就是他的結構。我在執行個體中也有講。
2、設定get和set方法訪問私人的成員變數
get方法:在Java語言中這個你必須要懂,實際上是對private訪問說明符許可權的一個特例,這樣來說吧!private說明符修飾一個成員變數以後,這個成員變數就變成了私人化,其他不能使用這個成員變數。當使用get方法以後,這個成員變數就能夠被擷取到,讀取到,就不在是私人的。
set方法:與get方法一樣。是對private說明符的一個破除,通過set方法就能夠對私人化的成員變數進行修改、更改。
通俗一點:就像一間屋子被封閉完全以後,我們在牆上鑿出一個門。我們通過這個門可以從房間裡面拿東西,我們也可以放東西到這個房間裡面一樣。
懂了吧?
3、定義多個泛型:泛型的定義我們可以直接定義多種類型,可以一次性在類名的後面定義多個。如下:
class Student<X,Y,Z>{ }
4、定義泛型方法:這個意思就是說在類裡面同樣可以定義一個泛型放法,例如
class Student<X,Y,Z>{ public <T> void display(){ //********** } }
三、具體整合執行個體
package www.com.c2;//1、定義的一個泛型類class Student01<T>{//T就是這個類的類型,但是可以在下面建立對象的時候相關的資料類型來定義泛型即可!//私人成員:私人化以後不能直接操作這個變數,但是設定了相關的get和set方法以後,就可以直接使用這個變數private T name;//設定get訪問器public T getName() {return name;}//設定set訪問器public void setName(T name) {this.name = name;}}//2、普通類使用get和set方法訪問設定私人成員class Student02{//私人成員:私人化以後不能直接操作這個變數,但是設定了相關的get和set方法以後,就可以直接使用這個變數private String name;//設定get訪問器public String getName() {return name;}//設定set訪問器public void setName(String name) {this.name = name;}}//3、定義多個泛型class Student03<X,Y>{//這個是泛型類//定義的私人變數private X name;private Y age;//產生對應的get和set方法。注意這個方法是泛型方法public X getName() {return name;}public void setName(X name) {this.name = name;}public Y getAge() {return age;}public void setAge(Y age) {this.age = age;}}//4、定義泛型方法class Student04{public <T> void display(T a){System.out.println(a+"這個是定義的泛型方法!");}}//這個是主類public class Generic {public static void main(String[] args) {//-----------執行個體使用泛型--------Student01<Object> stu1 = new Student01<Object>(); //Object類是所有類的父類。所有的資料類型都可以不斷的定義。//但是,如果這個object改為基礎資料型別 (Elementary Data Type)對應的封裝類,就只能夠使用這種資料類型stu1.setName(001);//這個是使用的整數類型stu1.setName(10.0f);//這個是使用的浮點型stu1.setName("dzx01");//這個是使用的String類型System.out.println(stu1.getName());//-----------執行個體使用get和set訪問--------Student02 stu2 = new Student02();stu2.setName("dzx02");//通過set方法設定值System.out.println(stu2.getName());//通過get方法擷取到//-----------執行個體使用多個泛型--------Student03<String,Integer> stu3 = new Student03<String,Integer>();//在這裡的時候才定義相應的資料類型即可!這樣就可以保證資料的安全性stu3.setName("dzx03");stu3.setAge(20);System.out.println(stu3.getName());System.out.println(stu3.getAge());//-----------執行個體使用泛型方法--------Student04 stu4 = new Student04();stu4.display("display");//根據你傳的值會自動判斷是什麼資料類型}}
四、結束語:
到這裡你應該知道什麼是泛型了吧?學好泛型對你學集合的時候很重要。所以所你自己先體會一下我寫的這個執行個體吧!很關鍵的,吃透了你才會真明白。
本文出自 “程式猿” 部落格,轉載請與作者聯絡!
day15 java語言中的-------泛型