zoukankan      html  css  js  c++  java
  • 201671010115 2016-2017-2《Java程序设计》第十周Java学习心得

      这一周我们学习了第八章——泛型程序设计,在本章里面,我们了解到了:

      为什么要使用泛型程序设计?是因为JDK 5.0 中增加的泛型类型,是 Java 语言中类型安全的一次重要改进,使用泛型机制编写的程序代码要比那些杂乱地使用Object变量,然后再进行强制类型转换的代码具有更好的安全性和可读性。

      泛型概念:泛型也被称为参数化类型,就是在定义类、接口和方法时,通过类型参数指示将要处理的对象类型,(如ArrayList类) 。泛型程序设计意味着编写代码可以被很多不同类型的对象所重用。

      对于泛型类:一个泛型类就是具有一个或多个类型变量的类,即创建用类型作为参数的类。如一个Pair泛型类定义格式如下:public class Pair<T>{  }(Pair类引入了一个类型变量T,用尖括号(<>)括起来,并放在类名的后面)。 泛型类可以有多个类型变量。例如: public class Pair<T, U> { … } 。类定义中的类型变量用于指定方法的返回类型以及域、局部变量的类型。

      对于泛型方法:除了泛型类外,还可以只单独定义一个方法作为泛型方法,用于指定方法参数或者返回值为泛型类型,留待方法调用时确定。 泛型方法可以声明在泛型类中,也可以声明在普通类中。

    class ArrayAlg

    {

        public static <T> getMiddle(T...a)          //     <T>  —>泛化处理,类型被参数化的一个标记

        {

            return a[a.Length/2];

        }

    }

      对于类型变量 的限定:共有 两类,一类是泛型变量的上界,另一类是泛型变量的下界。关键字extends所声明的是上界,super声明的是下界。如public class NumberGeneric< T extends Number>,其中,T是Number的子类,T继承父类Number,然后extends关键字所声明的上界既可以是一个类,也可以是一个接口,还有一个类型变量或通配符可以有多个限定,限定类型用“&”分割,例如: < T extends Comparable & Serializable >;再如List<? super CashCard> cards = new ArrayList<T>(),其中,“?”符号表明参数的类型可以是任何一种类型,它和参数T的含义是有区别的。T表示一种未知类型,而“?”表示任何一种类型,所以就有“?”表示的类型是CashCard的父类。

      对于通配符和泛型类型的继承规则:除了上面所说外,“?”通配符一般有以下三种用法:(1) 单独的?,用于表示任何类型。(2) ? extends type,表示带有上界。(3) ? super type,表示带有下界。Java中的数组是协变的,但这一原理不适用于泛型类型。

      所学的就这些。这周的问题是,对于老师布置的任务五——计算器的四则运算,我不能够 利用泛型程序设计技术来完成,所以希望老师可以讲解一下。

  • 相关阅读:
    [转载]美国名校的与机器视觉相关的研发中心网址
    图像匹配方法浅谈
    Debug FFMpeg with CodeBlock
    zircobrowser 源代码学习 一个Android平台的浏览器,适合用在学UI
    iPhone addSubview sameview 是否会产生内存泄漏
    Android 游戏demo
    C# 多线程 注意问题 总结
    Builld with gloox
    论坛专用
    VMware vSphere Client(4.1/5.0/5.1/5.5/6.0) 客户端下载地址
  • 原文地址:https://www.cnblogs.com/941yyz/p/7750740.html
Copyright © 2011-2022 走看看