对于编程与面向对象的一些思考

本文探讨了编程的本质和不同编程语言的抽象层次,强调了面向对象编程(OOP)在提供更高抽象级别和问题解决灵活性方面的优势。通过Alan Kay总结的Smalltalk的五大特征,阐述了OOP的基本理念,指出所有事物皆为对象、消息传递、封装、继承和多态等核心概念。文章以Thinking in Java为灵感来源,讨论了OOP如何使人能够更接近问题本质地进行编程,以及它在代码组织和可维护性方面的优点。
摘要由CSDN通过智能技术生成

前言

这一段时间在看Thinking in Java这本书,觉得受益匪浅,便想着将看书过程中所思所想记录下来,便有了这篇博文。其中引用部分均出自Thinking in Java。

正文

编程是什么?
编写程序。
怎么编写程序?
通过一些编程语言。

所有的编程语言的最终目的都是提供一种“抽象”方法。

所谓的抽象,其实就是将机器能懂的语言转换为人能操控的语言,也即所有编程语言的最终目的就是提供一种方法,让人能够自如的操纵机器。

一种较有争议的说法是:解决问题的复杂程度直接取决于抽象的种类和质量。

对于这种说法,笔者是持赞同态度的,在不同的编程语言上就可以看出一些端倪。汇编语言是一种对基础机器进行了少量抽象的语言,后来的很多“命令式”语言,比如FORTRAN,BASIC,C是对汇编语言的一种抽象,与汇编语言相比,这些语言已经有了很多进步——它们更加抽象,但是他的抽象原理仍然要求我们把很多的精力放在计算机的结构上,而非要解决的问题本身上。这样一来就会有很多的弊端,因为程序员必须在机器模型和要解决的问题模型之间建立一种联系,而这件事本身是在编程语言的范畴之外的,并且在不同的平台上机器模型与问题模型之间的冲突会尤为明显。
而面向对象的程序设计则在此基础上迈了一大步。对于问题模型而言,OOP的方式无疑更加灵活,因为程序员可以将问题模型抽象成为一个一个对象,而且对象之间可以进行灵活的配合与调整。传统的程序设计主张将程序看成是一堆函数的集合,或者直接就是对机器操作的一堆指令的集合,而面

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值