day15 java語言中的-------泛型
day15 java語言中的-------泛型
一、泛型概述:
“泛型”這個概念大家可能有些陌生,其實不然,泛型直面意思你可以理解為多種數據類型、可變的數據類型、不同需求時的數據類型等等。在開發中,泛型的使用時很常見的,同時包含泛型類和泛型方法兩種。掌握好他們之間的關系,對你在邏輯架構上有很大的幫助。下面就來看看泛型究竟是怎麽一會事兒。
二、泛型【Generic】
就是在定義一個類的時候不定義相關的數據類型,等到我們需要使用這個類的時候才定義相關的數據類型
針對八種基本數據類型,每一種數據類型都定義一個wrapper類進行了相對應的封裝。
byte;short;int;long;float;double;char;booleanByte;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改為基本數據類型對應的封裝類,就只能夠使用這種數據類型 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語言中的-------泛型