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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

JAVA进阶教学之(泛型)

發布時間:2024/7/23 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 JAVA进阶教学之(泛型) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

泛型

引言:

  • 泛型:泛型允許程序員在編寫代碼時使用一些以后才指定的類型,在實例化時作為參數指明這些類型
  • 人話:泛型對規定范圍產生約束,約束后只能存儲泛型指定的類型
  • 誕生:JDK5.0以后

?

  • 作用:泛型旨在程序的編譯階段起作用,只是給編譯器參考使用的(運行階段泛型沒用)
  • 使用:List<類名A標識符>,表示List集合中只允許存儲類名A類型的數據,用泛型來指定集合中存儲的數據類型,<類名標識符>里面一般是類名,也可以自定義類名標識符

?

  • 優點:集合存儲的元素類型統一,集合中取出的元素類型是泛型指定類型,不需要進行大量的“向下轉型”,不需要大量的"強制類型轉換"
  • 缺點:集合中存儲的元素缺乏多樣性

?

代碼演示:

?

未使用泛型前:

package com.lbj.javase.collection;import java.util.ArrayList; import java.util.Iterator; import java.util.List;public class GenericTest01 {public static void main(String[] args) {List list=new ArrayList<>();//準備對象Animal animal=new Cat();Animal animal1=new Bird();//將對象添加到集合中list.add(animal);list.add(animal1);//遍歷集合,取出每個Animal,讓它move()Iterator iterator=list.iterator();while (iterator.hasNext()){//o中沒有move方法,無法調用,需要向下轉型Object o=iterator.next();//通過判斷是否o屬于某個類,達到轉型效果if (o instanceof Animal){Animal a= (Animal) o;a.move();System.out.println(a);}}}} class Animal{public void move(){System.out.println("動物在移動");} } class Cat extends Animal{//子類特有方法public void catchMouse(){System.out.println("貓抓老鼠");} } class Bird extends Animal{//子類特有方法public void fly(){System.out.println("鳥在飛");} }

?

使用泛型后:

package com.lbj.javase.collection;import java.util.ArrayList; import java.util.Iterator; import java.util.List;public class GenericTest01 {public static void main(String[] args) {List list=new ArrayList<>();//準備對象Animal cat=new Cat();Animal bird=new Bird();//將對象添加到集合中list.add(cat);list.add(bird);//遍歷集合,取出每個Animal,讓它move() // Iterator iterator=list.iterator(); // while (iterator.hasNext()){ // //o中沒有move方法,無法調用,需要向下轉型 // Object o=iterator.next(); // // //通過判斷是否o屬于某個類,達到轉型效果 // if (o instanceof Animal){ // Animal a= (Animal) o; // a.move(); // System.out.println(a); // }//}//獲取迭代器Iterator<Animal> iterator=list.iterator();//遍歷集合,表示迭代器迭代的是Animal類型while (iterator.hasNext()){//使用泛型后,每一次迭代返回的數據都是Animal類型Animal animal=iterator.next();animal.move();System.out.println(animal);//調用子類特有的方法還是需要繼續向下轉型的if (animal instanceof Cat){Cat c= (Cat) animal;c.catchMouse();}if (animal instanceof Bird){Bird b= (Bird) animal;b.fly();}}}} class Animal{public void move(){System.out.println("動物在移動");} } class Cat extends Animal{//子類特有方法public void catchMouse(){System.out.println("貓抓老鼠");} } class Bird extends Animal{//子類特有方法public void fly(){System.out.println("鳥在飛");} }

?

自定義泛型:

引言 :

自定義泛型類就是把泛型定義在類上,用戶使用該類的時候,才把類型明確下來

?

自定義泛型的時候,<>是尖括號中的一個標識符,內容隨便寫

java源代碼中經常出現的<E>和<T>

<E> 表示 Element

<T>表示 Type

?

用戶想要使用哪種類型,就在創建的時候指定類型。使用的時候,該類就會自動轉換成用戶想要使用的類型了。

?

代碼演示:

package com.lbj.javase.collection;/*** @author LBJ* @version V1.0* @Package com.lbj.javase.collection* @date 2021/4/10 15:49* @Copyright 公司*/ public class GenericTest03{ //類比得出結論 public static void main(String[] args) {//創建對象并指定元素類型ObjectTool<String> tool = new ObjectTool<>();tool.setObj(new String("asdfghjkl"));String s = tool.getObj();System.out.println(s);//創建對象并指定元素類型ObjectTool<Integer> objectTool = new ObjectTool<>();/*** 如果我在這個對象里傳入的是String類型的,它在編譯時期就通過不了了.*///objectTool.setObj("asda");objectTool.setObj(10);int i = objectTool.getObj();System.out.println(i); } }class ObjectTool<T>{public T obj;public T getObj() {return obj;}public void setObj(T obj) {this.obj = obj;} }

總結

以上是生活随笔為你收集整理的JAVA进阶教学之(泛型)的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 欧美性猛交aaaa片黑人 | 久久99国产精品成人 | 免费在线观看网址入口 | 欧美国产成人精品一区二区三区 | 久久久久久一区 | 国产黄色片在线免费观看 | 蜜桃精品视频 | 美女爱爱视频 | 欧美性视频播放 | av私库| 91青青操 | h小视频在线观看 | 99久久免费精品 | 久久黄色精品视频 | 久久久久人妻精品一区二区三区 | 日韩美女激情视频 | 狠狠操在线观看 | 黄色三及 | 成人高潮片免费视频 | av在线视 | 国产综合社区 | 免费的毛片网站 | 激情拍拍 | 在线观看欧美视频 | 国产色在线视频 | 69xxxx日本| av毛片在线免费观看 | 精品无码国产污污污在线观看 | 亚洲午夜精品久久久久久浪潮 | 亚洲AV午夜成人片 | 亚洲a视频在线观看 | 激情国产视频 | 日韩毛片免费观看 | 海角官网 | 中文字幕十一区 | 骚鸭av | 乳揉みま痴汉4在线播放 | 国产成人一级 | free国产hd露脸性开放 | 日韩精品一区二区亚洲av观看 | 长腿校花无力呻吟娇喘的视频 | 亚洲视频网站在线观看 | 久久久久婷婷 | 成人影院免费 | 91九色网| 手机成人在线 | 国产精品女同一区二区 | 国产sm调教视频 | 国产亚洲精品成人无码精品网站 | 亚洲综合不卡 | 欧美亚洲天堂网 | 催眠调教后宫乱淫校园 | 337p粉嫩大胆色噜噜狠狠图片 | 午夜手机福利 | 午夜精品久久久久久久久 | 国产精品久久久国产盗摄 | 久草视频免费看 | 久久精彩 | 日本国产网站 | 日不卡| 日本jizz在线观看 | 欧美 日韩 国产 在线观看 | 欧美另类色 | 国产精品久久久久久吹潮 | 俄罗斯乱妇 | 国产一区在线免费观看 | 日韩视频不卡 | 一级黄色在线 | 欧美精品99久久 | h片在线观看免费 | 欧美干干| 国产黑丝在线观看 | www.在线观看视频 | 中文字幕91爱爱 | 国产精品国产精品国产 | 熟妇高潮喷沈阳45熟妇高潮喷 | 日本成人在线网站 | 午夜视频在线观看免费视频 | 一区二区三区四区视频 | 精品一区二区在线免费观看 | 欧美综合一区二区三区 | 久草网在线视频 | 激情宗合| 麻豆精品视频在线观看 | 国产乱码精品一品二品 | 亚洲色成人一区二区三区小说 | 福利视频在线播放 | 欧美国产三级 | av免费精品 | 性xx紧缚网站 | 黑人一级黄色片 | 亚色中文字幕 | 国产成人精品久久二区二区 | 夜色成人网 | 久久久久中文字幕亚洲精品 | 国产精品视频一二三区 | 欧美影视一区二区 | 小仙女av | 伊甸园精品区 |