zoukankan      html  css  js  c++  java
  • Java编程思想总结笔记The first chapter

      总觉得书中太啰嗦,看完总结后方便日后回忆,本想偷懒网上找别人的总结,无奈找不到好的,只好自食其力,尽量总结得最好。

    第一章  对象导论

     

    看到对象导论觉得这本书

     

    目录:

    1.1 抽象过程
    1.2 每个对象都有一个接口
    1.3 每个对象都提供服务
    1.4 被隐藏的具体实现
    1.5 复用具体实现
    1.6 继承
    1.7 伴随多态的可互换对象
    1.8 单根继承结构
    1.9 容器
    1.10 对象的创建和生命期
    1.11 异常处理:处理错误
    1.12 并发编程
    1.13 Java与Internet
    1.14 总结


    觉得看完终于要精通Java了,然而本章只是介绍开发方法概述在内的OOP的基本概念,了解对象的重要性。


    1.1 抽象过程

    通过其他语言的缺点来说明面向对象语言的好。

    汇编语言是对底层机器的轻微抽象、命令式语言(如C、BASIC)是对汇编语言的一种抽象,汇编语言直接控制计算机的硬件,命令式语言则基于计算机结构解决问题。OOP语言基于问题的结构解决问题,不会受限于任何特定类型的问题。

    1.2 每个对象都有一个接口

    接口:确定了对某一特定对象所能发出的请求      对象:类型名称

    看文字描述已经上升到哲学问题,从下面例子很好理解。

    Light lt = new Light(); //对象
    lt.on;//接口向对象发出请求

    1.3 每个对象都提供服务

    好处:1、有助于提高软件的内聚性   2、每个对象都可以很好的完成一项任务,但是它并不试图做更多的事情。

    理解:设计一个音乐播放器,有歌词显示、播放,暂停、背景显示(服务),这时不要只提供一个对象(它并不试图做更多的事情),可以提供三个对象,完成三个服务,三个对象提供三个服务完成一个音乐播放器(内聚性)。

    1.4 被隐藏的具体实现

    从Github下载一个框架,我的目标是实现快速应用开发,框架只需向我提供方法的调用即可,其他的隐藏了也不会影响我的调用

    访问权限:public > protected(包+基类) > 包访问权限(没有关键词时默认) > private

    1.5 复用具体实现

    复用指在一个类中使用继承或者组合。

    • 继承 ----is a 的关系     荔枝是水果
    • 组合 ----has a 的关系   有一种睡觉的方式是趴着

    1.6 继承

    从父类中派生出子类,子类能吸收父类的数据属性和行为,并能扩展新的能力。

    1.7 伴随多态的可互换对象

    class Shape{ 
      draw();
      erase();
      move();
      getColor();
      setColor();
    }
    void doSomething(Shape shape){
    shape.erase();
    //...
    shape.draw();
    }
    
    Circle circle = new Circle(); //父类为Shape
    Triangle triangle = new Triangle();  //父类为Shape
    Line line = new Triangle();  //父类为Shape
    doSomething(circle);
    doSomething(triangle);
    doSomething(line);

    对doSomething的调用会自动地正确处理,而不管对象的确切类型(可互换对象)。

    doSomething(Shape shape)的执行是指你是Shape类或者父类为Shape,而不是你是Circle类就执行这样,你是Triangle 类就执行那样。理解了可以去看设计模式之策略模式。

    这里还涉及到向上转型,如下图:

    1.8 单根继承结构

     1、所有类都继承自单一的基类

    public class JianCheng extends Object {  
    }  
    public class JianCheng {  
        public static void main(String[] args) {  
            JianCheng jiancheng= new JianCheng();  
            System.out.println(JianCheng instanceof Object);  
        }  
    }  

    输出:true     //说明 JianCheng 类默认继承 Object

    2、保证所有对象具有某些功能

    Object 的方法会被子类所继承,例如: clone()、equals(Object obj)、toString() 等方法。

    3、垃圾回收变得容易

    对象保证有其(Object)类型信息,因此不会因无法确定对象的类型而陷入僵局。这对于系统级操作显得十分重要(如异常处理)。

    1.9 容器

    持有对其他对象的引用称为容器(集合),例如List(用于存储序列),Map(也被称为关联数组,用来建立对象之间的关联),Set(每种对象类型只持有一个),以及诸如队列、树、堆栈等更多的构件。

    ArrayList与LinkedList的比较,前者是数组的形状,随机访问元素开销小,但插入、删除操作开销大。后者是链表形状,插入、删除操作方便。

    1.10 对象的创建和生命期

    认识对象置于堆栈和堆的区别

    • 堆栈 --间分配和释放置于优先考虑的位置,牺牲了灵活性,因为必须知道对象确切的数量、生命周期和类型。
    • 堆 --内存池中动态的创建对象,运行时才知道对象的数量,生命周期和类型。动态管理所以需要大量的时间在堆中分配存储空间,但创建存储空间和释放存储空间非常方便。

    Java 采用了动态内存分配的方式,使用 new 关键字创建对象,编译器可以确定对象存活的时间,并通过“垃圾回收器机制”自动销毁它。

    1.11 异常处理:处理错误

    异常是一种对象,从出错地点被抛出,并被特定类型的错误异常处理器捕获,通过try--catch或者throw。异常处理就像是与程序正常执行路径并行的、在错误发生时执行的另一条路径。

    运行时的异常,只有当代码运行时才能发现异常,并不需要try-catch。

    1.12 并发编程

    同一时刻处理多个任务的思想,也就是多线程运行。

    同步多线程运行有一个隐患,共享资源。A本来想使用a=Love You 但在某个线程导致a = hate you 然后A使用了,这样A肯定告白失败。

    1.14 总结

    第一章全是理论知识,而且很多知识点明明很容易却长篇大论导致难以理解,干货有却夹杂太多虚的了。

    Java编程思想总结笔记Chapter 2

    转载注明:http://www.cnblogs.com/wujiancheng/

  • 相关阅读:
    软件工程作业------分析文本文档,统计出现频率最多的十个单词
    关于IBOutlet的生命周期
    重装iTunes 错误代码42401 解决办法
    关于在多个UItextield切换焦点
    关于如何使用代码触发 UIButton的Unwind Segue
    NSFileManager在初始化文件的时候一不留神就进入陷阱
    Xcode的编辑利器Xvim,如何去掉烦人工具栏和文件路径
    __weak 和 __strong 还有Autorelease的用法
    关于NSFetchedResultsController的一些用法
    关于MVC模型的NSNotification用法
  • 原文地址:https://www.cnblogs.com/wujiancheng/p/7172273.html
Copyright © 2011-2022 走看看