java super ppt_JAVA编程基础课程 -300集(史上最全、最深、最细)ppt课件.ppt

JAVA编程基础课程 -300集(史上最全、最深、最细)ppt课件

注意: 1、泛型只能使用引用类型,不能基本类型 2、泛型声明时字母不能使用 静态属性|静态方法上 * 因为List、List等都是List的子类型。先假设传入的参数为为List,则第一段代码的三个“add”操作都是可行的;可如果是List呢??则只有第三个“add”可以执行,可见,为了保护其类型的一致性,也是不能往list添加任意对象的,不过却可以添加null。 * 同理,传入List 则第三行错误,不能list.add(new Fruit(“fruit”))为了保护类型的一致性,因为“? super Apple”可以是Fruit,也可以是Object,因无法确定其类型,也就不能往List super Apple>添加Apple的任意父类对象。 * //HashMap put源码分析 public?V?put(K?key,?V?value)??? {??? ?//?如果?key?为?null,调用?putForNullKey?方法进行处理?? ?if?(key?==?null)??? ?????return?putForNullKey(value);??? ?//?根据?key?的?keyCode?计算?Hash?值?? ?int?hash?=?hash(key.hashCode());??? ?//?搜索指定?hash?值在对应?table?中的索引?? ?????int?i?=?indexFor(hash,?table.length);?? ?//?如果?i?索引处的?Entry?不为?null,通过循环不断遍历?e?元素的下一个元素?? ?for?(Entry?e?=?table[i];?e?!=?null;?e?=?e.next)??? ?{??? ?????Object?k;??? ?????//?找到指定?key?与需要放入的?key?相等(hash?值相同?? ?????//?通过?equals?比较放回?true)?? ?????if?(e.hash?==?hash?&&?((k?=?e.key)?==?key??? ?????????||?key.equals(k)))??? ?????{??? ?????????V?oldValue?=?e.value;??? ?????????e.value?=?value;??? ?????????e.recordAccess(this);??? ?????????return?oldValue;??? ?????}??? ?}??? ?//?如果?i?索引处的?Entry?为?null,表明此处还没有?Entry??? ?modCount++;??? ?//?将?key、value?添加到?i?索引处?? ?addEntry(hash,?key,?value,?i);??? ?return?null;??? }??? * JAVA编程基础课程 -300集(史上最全、最深、最细) 加入 一起学JAVA 讲师:裴新 邮箱:laopei@ 泛型 本章概述 起因 起因:JDK1.4以前类型不明确 装入集合的类型都被当作Object对待,从而失去自己的实际类型。 从集合中取出时往往需要转型,效率低,容易产生错误。 方案:在定义集合的时候同时定义集合中对象的类型 作用: 模板:提高代码的重用率 安全:在编译的时候检查类型安全 省心:所有的强制转换都是自动和隐式的 概念 概念:泛型就是参数化类型。 适用于对多种数据类型执行相同功能的代码。 泛型中的类型在使用时指定。 泛型归根到底就是“模板”。 如:可拆卸刀头的螺丝刀 检查需要拧动的螺丝, 根据螺丝选择适合刀头 (一字、十字、星形), 将正确的刀头插入到螺丝刀柄上后, 您就可以使用螺丝刀执行完全相同的功能,即拧螺丝。 泛型主要适用在集合中 任意化 引出:学生成绩有三种情况 1、整数 2、小数 3、字符串 任意化: Object是所有类的根类, 但是具体类使用的时候;需要类型强制转换的 多态:Object可以接受任意类型。 缺点: 需要类型转换; 需要类型检查; 需要处理转换错误异常 泛型:使用泛型时,在实际使用之前类型就已经确定了,不需要强制转换。 任意化实例 Student 使用Object 代码片段 public class Student { private Object javase; public Student() { } public Student(Object javase) { this.javase =j

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值