• Java入门到精通——基础篇之面向对象


    一、概述。
          Java属于面向对象的一种语言,因为Java是面向对象的语言所以这个语言的诞生需要有五个基本特性:
    1)万物皆为对象。     
    2)程序是对象的集合。
    3)每个对象都有自己的由其他对象所构成的存储。
    4)每个对象都拥有其他类型。每个对象都是某个类的一个实例。

    5)某一特定类型的所有对象都可以接收同样的消息。

           Java中会有一些我们常用到的概念虽然总在用但是我们却不知道为什么会要有这些下面我就以一问一答的方式来给大家讲解。

    二、一些面向对象的疑问。
    2.1为什么要有访问控制的存在?它的意义是什么?
           1).让客户端程序员无法触及到他们不应该触及的部分——这一部分对数据类型的内部操作是必需的但并不是用户解决特定问题所需的。
           2).允许库设计者可以改变类内部的工作方式而不用担心会影响到客户端程序员。
    在以上的原因下发明了访问指定词决定了紧跟其后被定义的东西可以被谁使用。
    public:表示紧跟其后的元素对任何人可用。
    private:除了类型创建者和类型的内部方法之外任何人都不能访问的元素。
    proteced:与private差不多在继承的类可以访问protecte成员,不能访问private成员。
          Java有一种默认的访问权限包访问权限类可以访问在同一包下的其他类的成员但是对于包之外的访问访问控制盒private一样。
    2.2什么是组合?什么是聚合?
          组合:新的类可以由任意数量、任意类型的其他对象以任意可以实现新的类中想要的功能的方式所组成用现有的类组成新的类就是组合。
          组合的动态发生就叫做聚合。
    2.3什么是容器?Java中容器有些什么?如何选择容器
           当解决一个问题的时候不知道需要多少个对象,或者它们存活多久。也不知道如何存储这些对象的时候Java推出了容器。这样我们不需要知道将来会把多少个对象置于容器中只需要创建一个容器对象然后对它处理所有细节。Java中具有满足不同需求的各种类型的容器例如:List用于存储序列,Map建立对象之间的关联。Set每种对象类型只持有一个。
           不同容器提供了不同类型的接口和外部行为。不同的容器对于某些操作具有不同的效率。ArrayList和LinkedList。ArrayList中随机访问元素是一个花费固定时间的操作。LinkedList随机选取元素需要在列表中移动。
    2.4什么是继承?
           继承是为了解决当你创建一个类以后还有一个类似的类的时候我们通常的做法是重新创建一个新类如果我们把这些类以现有的类为基础来复制它也能达到这样的效果。基础的类就叫做源类。
    2.5Java创建和销毁对象用的是那种方式?一共有几种创建和销毁对象的方式?
           两种对对象创建和销毁的方法:
    第一种:在编写的时候就确定对象的存储空间和生命周期,可以通过将对象置于堆栈或静态存储区域内来实现这种方式虽然提高了效率但是牺牲了灵活性
    第二种方式成为堆的内存池中动态地创建对象这种方式只有在运行的时候才知道需要多少对象,他们的生命周期如何。以及他们具体什么类型的。
          java完全采用了动态内存分配方式每当要创建新对象时候就要用new关键字来构建此对象的动态实例。在堆栈中创建对象的语言编译器可以判断对象的存货时间,并可以自动销毁它,如果是在堆上创建对象编译器对对象就一无所知。
    2.6 Java是如何操作对象的?为什么对象要赋初值?
          Java用引用操作对象。为什么要赋初值?就像遥控器一样遥控器可独立存在但是没有和电视机相关联它存在没什么意义,最安全的做法就是创建一个对象引用的时候同时便进行初始化。
    三、总结。
            Java中的一些概念的出现时有原因的而不是凭空就有的,我们不仅仅需要知道用这些东西而且需要知道这些东西是为了处理什么问题而产生的。
  • 相关阅读:
    WPF FAQ (from Syncfusion)
    父窗口与子窗口的层次关系
    [WPF疑难]如何禁用WPF窗口的系统菜单(SystemMenu)
    【讨论】不得不重视的问题:信息太多!信息太杂!
    javaScript系列 [08]javaScript和JSON (进阶)
    javaScript系列 [11]Canvas绘图(路径)
    javaScript系列 [10]Canvas绘图(基础)
    Hexo + Github搭建个人博客
    javaScript系列 [07]日期类型和计时器
    javaScript系列 [09]javaScript和JSON (拓展)
  • 原文地址:https://www.cnblogs.com/iplus/p/4490363.html
Copyright © 2020-2023  润新知