当前位置: 首页 > news >正文

东莞官方网站 优帮云清远市清城区发布

东莞官方网站 优帮云,清远市清城区发布,浙江省火电建设公司网站,建筑工程公司名字大全集个人主页→VON 收录专栏→java从入门到起飞 目录 一、前言 二、泛型的简要概述 三、泛型的基本概念 类型参数#xff1a; 通配符#xff1a; 边界#xff1a; 使用泛型的好处#xff1a; 四、泛型类 五、泛型方法 六、思考 七、疑惑 一、前言 泛型对于我来说又… 个人主页→VON 收录专栏→java从入门到起飞 目录 一、前言 二、泛型的简要概述 三、泛型的基本概念 类型参数 通配符 边界 使用泛型的好处 四、泛型类 五、泛型方法 六、思考 七、疑惑 一、前言 泛型对于我来说又是一个新的名词在其他语言中或许也有只是我可能没学到。接触一个新的东西学习起来是比较吃力的但收获也挺多的毕竟是一个新的知识点。有些不理解的地方希望各位大佬能够多加点评。 二、泛型的简要概述 Java中的泛型是一种在编译时检查类型安全性的特性它允许程序员编写出更加类型安全的代码同时避免了运行时类型转换错误。泛型是在Java SE 5.0版本中引入的它使得代码更易于阅读和维护并且减少了强制类型转换的需要。 三、泛型的基本概念 类型参数 在声明类或接口时使用的占位符类型通常用大写字母 T、E、K、V 等表示。这些类型参数可以在类或接口的方法签名中使用以指定具体的类型。 通配符 使用 ? 表示未知类型可以用来接收任何类型的数据但不能用来发送数据。通配符可以与限定符结合使用如 ? extends Number 表示未知类型但必须是 Number 或其子类? super Integer 表示未知类型但必须是 Integer 或其超类。 边界 通过 T extends SomeClass 或 T super SomeClass 定义类型参数的上界或下界限制了类型参数的具体范围。 使用泛型的好处 类型安全编译器会在编译阶段检查类型错误而不是在运行时抛出 ClassCastException。重用性可以通过泛型编写通用的类或方法这些类或方法可以在不同类型的对象上工作。清晰性代码中的类型信息更加明确提高了代码的可读性和可维护性。 四、泛型类 自行创建泛型类 package ArrayDemo.GenericsDemo;import java.util.Arrays;// 当编写一个类的时候如果不确定类型那么这个类就可以定义为泛型类 public class MyArrayListE {Object[] obj new Object[10];int size;// E:表示不确定的类型// e:形参的名字/变量名// 添加元素public boolean add(E e){obj[size] e;size;return true;}public E get(int index){return (E)obj[index];}Overridepublic String toString() {return Arrays.toString(obj);} }package ArrayDemo.GenericsDemo;import java.util.ArrayList; import java.util.Iterator;public class A02_GenericsDemo02 {public static void main(String[] args) {// 泛型的好处// 1.统一的数据类型// 2.把运行时期的问题提前到了编译期间避免了强制类型转换可能出现的异常因为在编译阶段类型就已经确定下来了// java的泛型是伪泛型// 泛型的细节// 1.泛型中不能写基本数据类型// 2.指定泛型的具体类型后传递数据时可以传入该类类型或者其子类类型// 3.如果不写泛型类型默认是Object// 泛型类// 使用场景当一个类中某个变量的数据类型不确定是就可以定义带有泛型的类// 泛型类的使用MyArrayListString list1 new MyArrayList();list1.add(a);list1.add(b);list1.add(c);list1.add(d);System.out.println(list1);// [a, b, c, d, null, null, null, null, null, null]MyArrayListInteger list2 new MyArrayList();list2.add(1);list2.add(2);list2.add(3);list2.add(4);System.out.println(list2);// [1, 2, 3, 4, null, null, null, null, null, null]} }因为自定义的泛型并没有明确规定类型所以集合的类型我们可以根据需求来定义上述例子中就用了Integer和String两种数据类型进行的创建。 五、泛型方法 自定义泛型方法可以根据需求进行自行定义 这里以向集合当中添加元素为例。 package ArrayDemo.GenericsDemo;import java.util.ArrayList;public class ListUtil {private ListUtil(){}public staticE void addAll(ArrayListE list,E e1,E e2,E e3,E e4){list.add(e1);list.add(e2);list.add(e3);list.add(e4);}public staticE void addAll2(ArrayListE list,E...e){for (E element : e) {list.add(element);}} }package ArrayDemo.GenericsDemo;import com.von.day13.A;import java.util.ArrayList;public class A03_GenericsDemo03 {public static void main(String[] args) {// 泛型方法// 方法中形参类型不确定时// 方案一使用类名后面定义的泛型所有方法都能使用// 方案二在方法申明上定义自己的泛型只有本方法能用ArrayListInteger list1 new ArrayList();ListUtil.addAll(list1,1,2,3,4);System.out.println(list1);// [1, 2, 3, 4]ArrayListString list2 new ArrayList();ListUtil.addAll(list2,a,b,c,d);System.out.println(list2);// [a, b, c, d]ArrayListString list3 new ArrayList();ListUtil.addAll2(list3,a,b,c,d,e,f,g);System.out.println(list3);// [a, b, c, d, e, f, g]} }六、思考 没有泛型的时候集合如何存储数据 package ArrayDemo.GenericsDemo;import java.util.ArrayList; import java.util.Iterator;public class A01_GenericsDemo01 {public static void main(String[] args) {// 泛型是JDK5中引入的特性可以在编译阶段约束操作的数据类型并进行检查// 泛型的格式数据类型// 注泛型只支持引用数据类型// 思考没有泛型的时候集合如何存储数据// 1.创建集合并添加数据ArrayList list new ArrayList();// 字符list.add(a);list.add(b);list.add(c);list.add(d);// 数字list.add(1);list.add(2);list.add(3);// 对象list.add(new Student(zhang,20));list.add(new Student(li,19));list.add(new Student(wang,22));// 2.遍历集合中的每个元素Iterator it list.iterator();while(it.hasNext()){// 多态的弊端是不能访问子类的特有功能// 如不能够访问学生这一对象中的单独一个System.out.println(it.next());}} }如果没有给集合指定类型默认为所有的数据类型都是Object类型 此时可以添加任意的数据类型 不过也有弊端不能够访问特有的行为 因此就推出了泛型可以在添加数据的时候就把类型进行统一 而且在获取数据的时候也不用进行强转操作了十分的方便 七、疑惑 这里的输出为什么是地址值而不是集合中的元素值 希望各位大佬们能够解答
http://www.hkea.cn/news/14483132/

相关文章:

  • 智能网站建设系统google地图嵌入网站
  • 怎样选择网站服务器wordpress安全狗
  • 如何看网站的建站时间购物网站建设需求
  • 网站地图seo市场营销方案案例范文
  • 网站浏览器兼容性网站开发实习
  • 打开链接的网站wordpress建站教程网
  • 网站做二级域名干什么用佛山 网址开发 网站制作
  • 婚纱摄影网站首页搭建电子商务平台
  • 免费简单门户网站开发网络公关公司是做啥的
  • 网站建设合同百度文库外贸网站后台
  • 企业网站建设合同模板厦门长实建设有限公司网站
  • 廊坊做网站教程企业网站邮箱建设
  • 怎么让自己做的网站别人可以访问国家认可的赚钱游戏
  • 深圳自助建站网站技术支持 深圳网站建设贝尔利
  • 微网站的功能莱州哪有做网站的
  • 做网站版权所有怎么写企业建站公司排名为什么不好做
  • 合肥模板网站建设收费大流量网站解决访问量
  • 免费制作照片的网站php网站广告管理系统
  • 彩票网站制作开发微课网站建设项目
  • 琼海做网站口碑微网站开发制作
  • 武昌做网站的公司什么是全网营销推广
  • 网站设计论文提纲品牌建设方案的完整纲要
  • 做电影网站怎么盈利wordpress 特效
  • 网站名称 备案wordpress 关闭网站
  • 阜宁做网站需要多少钱表格制作教程从零开始
  • 网站综合营销方案设计wordpress的文章插件
  • 建设网站内容的策划书小公司网络搭建
  • 美妆网站建设规划福田蒙派克g5
  • 峡江网站建设看男科花了一万多了
  • 苏州相城做网站的网站收录很少却有排名