作者:夜阑人静1314coolgirl | 来源:互联网 | 2023-10-12 13:19
实践是认识的来源和基础、是认识的动力、是检验其真理性的标准。工作一年后再回过头来看看,还是学生的时候对编程语言产生的各种疑问,突然间,好像有了那么点儿豁然开朗的感觉。但,真正的豁然开朗还是在品读了《J
实践是认识的来源和基础、是认识的动力、是检验其真理性的标准。工作一年后再回过头来看看,还是学生的时候对编程语言产生的各种疑问,突然间,好像有了那么点儿豁然开朗的感觉。但,真正的豁然开朗还是在品读了《Java编程思想》第一章后油然而生,同时也对Bruce Eckel崇拜的五体投地。
作为一个中国式教育的成品,作为一个多年饱受我国教科书式著作熏陶的人,虽然读着Bruce大师的文章感觉很爽,但却难以系统的消化,所以还是对其内容进行一下梳理,帮助理解记忆。
第一章主要简单介绍了面向对象编程(OOP)的一些核心思想和面向对象编程语言的特点,对于特点,当初学习面向对象编程语言的时候,属实背的滚瓜烂熟啦,但是,没有了思想的概念,就像一潭死水,真正起到点睛作用的还是Bruce大师结合例子的设计思想来对这些特点进行的描述。所以,一门语言的重点不是它具有特色的语法结构,而是,我们如何利用它的特点来解决我们的问题,也就是所谓的设计思想。下面将自己对第一章内容的梳理和理解描述如下:
=========================================================================
面向对象编程(OOP)
目标(goal):与面向过程编程相比,是为了在解决现实问题时,以问题为核心,建立对问题结构的考虑,而不是将问题的解决基于计算机的结构、程序员必须建立机器和实际待解决问题之间的关联。
---------------
特性(feature):抽象性(类和对象)、封装性、继承性、多态性
抽象性和封装性——对问题空间的抽象是面向对象的核心,人们所能够解决的问题的复杂性直接取决于抽象的类型和质量。Bruce告诉我们的抽象原则是,将问题肢解成一小块儿一小块儿,然后针对每一小块儿去构想一个角色,该角色就是能够解决该一小块儿问题的对象,然后确定了该对象应该提供什么服务及具备什么属性后,便可将其封装成类。
访问控制的意义:当把程序员按角色分成类创建者和类使用者后,通过访问控制将类内部构造完全对类使用者屏蔽,这样,一方面,类创建者对内部进行修改,只要保证对类使用者公开的接口保持不变,便不影响其正常使用,另一方面,类使用者无法在不知情的情况下破话类内部脆弱的部分,从而可以减少程序的BUG。Java除了pulic、private和protected三个访问控制词外,还包含包的访问权限。
继承性——“是一个”表示继承后覆盖基类的方法,“像一个”表示继承后在子类中增加基类没有的方法,部分继承可通过private来控制。
多态性——通过后期绑定实现将子类对象当作其泛化基类型对象来看待,从而达到功能的扩展不更改或者尽量少的更改原有代码,进一步降低维护的成本。
---------------
在对对象的数量和生存周期没有确切的把握时最好使用范型容器
除了基本类型外,Java中对象都是通过new创建在堆上的,且有垃圾回收器来处理内存释放问题
Java中异常处理是强制的
Java提供了很多库来支持多线程,为了提高程序的响应能力,比如用户界面响应与后台处理的多任务执行
---------------
在“Java与Internet”一节中,Bruce以选择什么样的解决方案为引子简单介绍了Java在B/S模式中的应用及优势,其中涉及到的Java的元素有Java applet(客户端编程)、Java Web Start(客户端编程)、Java servlet(服务器端编程)
最后的结论是:根据问题的实际情况来选择什么样的编程语言、选择采用什么样的技术提供合理的解决方案