• 面向对象的由来


    《Java编程思想》是一本好书,但同时也是晦涩难懂,其一是知识本身的难度,其二这本书是翻译过来的,而且是直译。我也是尝试了好多次才又拿起了这本书啃,没想到今天突然感觉发现了宝藏。

    接下来我就罗列一下今晚的收获吧:

    Sun对Java的设计目标:为程序员减少复杂性。(虽然Sun被收购了,还是谢谢Sun,注意,这里说的不是减少程序的复杂性,而是减少程序员写代码的复杂性,Java面向对象的思想毫无疑问解放了编程的生产力,打个比方,Sun负责留守大本营,程序员们利用Java大杀四方)

    ”人们所能解决问题的复杂性取决于抽象的类型和质量“,这是结论,接下来就聊到抽象机制的问题了。

    举起了一个栗子:

    • 汇编语言是对底层机器的抽象
    • Basic,C是对汇编语言的抽象

    接下来,重点来了:

    但它们的抽象都是基于计算机的结构去解决问题,而不是基于所要解决的问题去考虑。

    面向过程的特点的本质是啥?是基于计算机的结构解决问题!!!

    在面向过程的情况下,程序员需要在机器模型和待解决问题模型之间建立关联。(当然,这种方式是非常困难的)

    在面向过程到面向对象的路上,前人们做了哪些努力呢?

    • LISP:所有问题都是列表
    • APL:所有问题都是算法
    • Prolog:所有问题都是决策链

    问题:针对特定领域都是不错的解决方案,但其通用性太弱,无法脱离领域限制。

    面向对象来了,核心思想:所有问题都是对象!!!(对象具有状态和操作,也就是特性和行为,更专业,更熟悉的说法:属性和方法)

    一句话说明面向过程和面向对象的区别???

    面向过程基于计算机的结构解决问题,面向对象基于问题本身(基于问题本身:将问题抽象为对象)解决问题。

  • 相关阅读:
    倒排索引在MYSQL,PostgreSQL,ElasticSearch中的设计思想
    MySQL Group Replication: What Is It? Replicated Database State Machine & Paxos implementation
    Redis 6.0 docker Cluster
    What is the "Docker Subnet" used for?
    Windows MYSQL 8.0 或者 5.7 查找my.ini 修改端口号
    Kerberos Network Authentication Service Window & Mac
    协合新能源集团有限公司 | 红海 eHR BPMN
    基于 springBoot 实现webSocket方式的扫码登录
    Python中IO编程-StringIO和BytesIO
    Neo4j基本入门
  • 原文地址:https://www.cnblogs.com/noneplus/p/13342066.html
Copyright © 2020-2023  润新知