1.对象导论

计算机革命起源于机器,因此,编程语言的产生也始于对机器的模仿。

面向对象的程序设计(Object-oriented Programming,OOP)便是这种以计算机作为表达媒介的大趋势的组成部分。

1.1 抽象过程

    所有编程语言都提供抽象机制。

    1.1.1 汇编语言是对底层机器的轻微抽象。

    1.1.2 “命令式”语言(如FORTRAN,BASIC,C)是对汇编语言的抽象。虽然他们在汇编语言的基础上有了大幅度改进,但是它们所做的主要抽象仍要求在解决问题时要基于计算机的结构,而不是基于索要解决的问题的结构来考虑。

            1.1.2.1 建立起在机器模型和实际待解模型之间的关联(编程方法)

            1.1.2.2 针对待解问题建模。(如LISP,APL;PROLOG)

    1.1.3 面向对象方式通过向程序员提供表示问题空间中的元素的工具而进了一步。我们将问题空间中的元素及其在解空间中的表示成为对象。这种思想的实质是:程序可以通过添加新类型的对象使自身适用于某个特定问题。


1.2 每个对象都有一个接口

    创建抽象数据类型(类)是面向对象程序设计的基本概念之一。

    一个类实际上就是一个数据类型。

    对象的接口(interface)的定义:接口确定了对某一个特定对象所能发出的请求。但是,在程序中必须有满足这些请求的代码。这些代码与隐藏的数据一起构成了实现。

    Light lt = new Light();

    lt.on();

    类型/类名称是Light,

    特定的Light对象的名称是lt,

    上述代码创建了一个Light对象的方式:定义此对象的“引用”(lt),然后调用new方法创建该类型的对象。为了向对象发送消息,需要声明对象的名称,并用圆点符号连接一个消息的请求。


1.3 每个对象都提供了服务

    当在试图开发或理解一个程序设计时,最好的方法之一就是将对象想像为“服务提供者”。这有助于提高对象的内聚性。


1.4 被隐藏的具体实现

    程序员按照角色分为类创建者(构建只向客户端程序员暴露必需部分的类)和客户端程序员(手机各种用来实现快速开发的类)。

    访问控制:(1)让客户端程序员无法触及他们不该触及的部分(2)允许库设计者改变类内部的工作方式而不影响客户端程序员。

            public,private,protected,包访问权限。


1.5 复用具体实现

    事实上,这种“一旦类被创建并被测试完,它就代表一个有用的代码单元”复用性,并不容易达到我们所希望的程度,产生一个可复用的对象设计需要丰富的经验和敏锐的洞察力。

    最简单的复用某个类就是创建一个该类的对象,并可以将该类对象置于某新类中。---- 创建一个成员对象。

    组合:使用现有的类合成新的类。

    聚合:动态发生的组合。

    在建立新类时,应该先考虑组合,因为它更简单灵活。


1.6 继承

    对象这种观念,本身就是十分方便的工具,使得你可以通过概念将数据和功能封装到一起。因此,可以对问题空间的观念给出恰当的表示,而不用受制于必须使用底层机器语言。

    当父类发生变动,子类也会反映这些变动。

    继承现有类型,变创造新的类型。新的类型不仅包括现有类型的所有成员(尽管private被隐藏起来,并且不可访问),而且更重要的是它复制了基类的接口。也就是,所有可以发送给基类对象的消息同时也可以发送给导出类对象。

    基类与导出类产生异常的方法:(1)直接在类中添加新方法(2)改变现有基类的方法的行为,即覆盖

    1.6.1 is-a和is-like-a

        is-a 和is- like-a的使用场合不同。


1.7 伴随多态的可互换对象

    在处理类型的层次结构时,经常想把一个对象不当做它所属的特定类型来对待,而是将其当做基类的对象来看待。

    后期绑定:当对象发送消息的时候,被调用的代码知道运行才能确定。


1.8 单根继承结构

    单根继承结构保证所有对象都具备某些功能,使垃圾回收的实现更容易。

    JAVA是单根继承,所有对象的终极基类时Object。


1.9 容器

    List,Map,Set,队列,树,堆栈等。

    不同容器提供不同类型的接口和外部行为;对于操作具有不同的效率。

    1.9.1 参数化类型:范型


1.10 对象的创建和生命期

    JAVA完全采用了动态内存的分配方式,即在堆heap得内存池中动态地创建对象。

    JAVA的垃圾回收器被设计用来处理内存释放问题。


1.11 异常处理:处理错误

    异常处理将错误处理直接置于编程语言中,有时甚至操作系统中。异常是一种对象。JAVA一开始就内置了异常处理,而且强制你必须使用它。


1.12 并发编程

    在同一时刻处理多个任务。(如用户界面)

    多线程带来的便利之一:使得程序员不用担心机器上是否有多个处理器还是只有一个处理器。(逻辑上划分线程)

    隐患:共享资源(解决方法:某个任务锁定某项资源,完成其任务,然后释放资源锁,是其他任务可以使用该资源)


1.13 JAVA与Internet

(后期放到JAVA WEB里写)


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值