zoukankan      html  css  js  c++  java
  • JAVA编程思想笔记 第一章 对象导论

    1. 对象导论

    1.1 基本概念

    对象的定义

    • 万物皆为对象;

    • 程序时对象的集合,它们通过发送消息来告知彼此所要做的;

    • 每个对象都有自己的由其他对象所构成的存储;

    • 每个对象都有其类型;

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

    • 每个对象都提供服务

    接口

    接口确定了对某一特定对象所能发出的请求。(eg. 灯的开关请求)

    被隐藏的具体实现/访问控制

    • public:元素对任何人可用
    • private:除类型创建者和类型内部方法之外任何人不得访问的元素
    • protect:基于private,但继承的类型可以访问元素
    • 包访问权限:同一个包内的类型可以访问

    1.2 复用

    组合/聚合

    最简单的服用就是直接使用类的对象,或者将类的对象置于新类之中,通常置于新类中的对象都是private的。

    • 组合:使用现有的类合成新的类
    • 聚合:如果组合是动态发生的称为聚合
    • 组合经常被视为 has-a 关系(eg. 汽车<--引擎)。
    • 优先考虑组合而不是继承,因为更加简单灵活。

    继承

    基于已有的类,复制并添加修改副本后得到新类,而不是重复创建相似的类。继承描述了类型之间的相似性。

    • 单根继承结构:万物起源 Object基类
    • 源类/基类/超类/父类 ==> 导出类/子类/继承类
    • 继承类不仅包括现类型的所有成员,还复制了基类的接口,所有发送给基类的消息都可以发送给子类
    • 差异性
      • 直接添加新的方法 (is-like-a)
      • Overriding(覆盖),改变现有基类的方法的行为 (is-a)

    多态

    • 泛型
    • 后期绑定
    • 向上转型:将子类堪称它的基类的过程,安全

    容器

    • 问题:无法确定解决某特定问题需要多少对象,对象存活多久等问题
    • eg. list map set
    • 容器的选择:
      • 不同的容器提供了不同的接口和行为
      • 不同的容器对不同的操作有着不同的效率
        • ArrayList 随机访问是固定开销
        • LinkedList 插入删除开销低于ArrayList

    参数化类型

    • 向下转型:不安全的,需要知道确切的类型信息
      ArrayList<Shape> shapes = new ArrayList<Shape>();

    1.3 对象的创建和生命周期

    1.4 异常处理机制

    1.5 并发编程

    • 共享资源问题,上锁机制
  • 相关阅读:
    Asp.Net MVC3.0中防止跨站的POST
    .NET实现字符串base64编码
    silverlight调用MVC WebApi方法
    MVC实现上传图片的方法
    ASP.NET使用文件上传控件上传图片
    设置网页icon标志
    C# 连接EXCEL 和 ACCESS
    javascript前进、后退、刷新的实现
    DataTable数据统计方法
    常量指针和指针常量
  • 原文地址:https://www.cnblogs.com/fireyjy/p/12489212.html
Copyright © 2011-2022 走看看