zoukankan      html  css  js  c++  java
  • java 小结2 多态问题和容器介绍

      面向对象这个东西,其实我们一直是不是都没有感觉到自己在用,以后我一定要用用。以前学c#时候认真的看过一次,最近一直研究java。随便再看看。

    多态问题:

        在java中多态分为(1)编译时多态和(2)运行时多态

    (1)编译时多态比较容易理解:其实就是通过方法重载,就是方法的重载,同一个函数名但是可以参数不一样。这就是重载(so easy)

    (2)运行时多态:这个是通过方法覆盖实现的,就是子类在继承父类的时候,通过对某个方法的重写,覆盖父类方法。

       简单的说:比如我们有个父类A,子类B通过Extends继承了A,C,D也是,我们在方法调用的时候只要用调用A就行了。

       (使用父类引用指向子类对象,在调用某一父类中的方法时,不同的子类就会表现出不同的方法结果,这就是多态,有继承才有多态)

    作用:扩展性好,我们在新增某个类的时候,只要继承父类,并覆盖父类方法就ok了。一个接口多种实现方式,继承的表现就是多态。

          (应用程序不必对每一个派生类编写一个功能调用,只需要对抽象基类进行处理即可)

       我补充一下使用接口的理由:它能使我们创建更加通用的代码,通过针对接口而非具体实现类来编写代码,这样我们的代码可以应用更多地对象类型。

    容器:

         我们使用比较多的肯定是List<T> list=new ArrayList<T>,不可否认ArrayList很强大,但是其实java还有好多其他的好东西。

         首先要说明一下List是一个接口而已,不能List x=new List();List只是声明了函数,并没有实现。ArrayList是一个继承了List的具体实现类而已。

         (1)数组:说到容器,可能要提到数组,算了,暂时就把数组看出是固定了大小的容器(其实它不是容器),然后由于知道数组大小,所以用参数下标即可随机访问,速度应该是最快的 O(1),要注意的一点就是数组的legths是数组的大小而不是数组里面的数据个数。

         (2)Collection和Collections的区别

          Collection是集合类的顶级接口,它下面还有List和Set两个接口,(接口继承接口)

          Collections是集合类的一个工具类,这个类提供了一系列的静态函数,可以用来对集合排序,选取最大值。。。。。。

         (3)用图来说明一下关系(还有map,它是和Collection一个级别的,包括hashtable,hashMap。。。。)

      (4)迭代器(iterator)

       迭代器是一种设计模式,这他妈也是设计模式。我们知道迭代器是用来选取集合对象的,我们通过迭代器选取对象引用可以直接对对象进行操作。代码我就不贴了。

    作用:作为一种设计模式,可以做到不必要知道或者重写代码就可以应用不同类型的容器。

        这个可能无法理解,这么说吧:就是我们可以不必管集合是用什么方式实现的,管他是list还是map,我反正只需要调用迭代器就ok了。其实一般的时候也用不到,可能在你

    要改某个程序的集合实现方法的时候用到。

  • 相关阅读:
    笨蛋的厄运
    模仿写了一个摸鱼应用解决原作者的问题
    retain和copy还有assign的区别
    分析与理解通知消息WM_NOTIFY
    备忘录
    数据结构C++模板实现之单向链表
    服务器(VPS合租)
    复制构造,赋值操作符,const重要性
    Windows 注册表操作简介
    窗口类封装之窗口对象消息处理的映射方法(1)
  • 原文地址:https://www.cnblogs.com/GuoJiaSheng/p/3907035.html
Copyright © 2011-2022 走看看