实践是认识的来源和基础、是认识的动力、是检验其真理性的标准。工作一年后再回过头来看看,还是学生的时候对编程语言产生的各种疑问,突然间,好像有了那么点儿豁然开朗的感觉。但,真正的豁然开朗还是在品读了《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(服务器端编程)

最后的结论是:根据问题的实际情况来选择什么样的编程语言、选择采用什么样的技术提供合理的解决方案

转载于:https://www.cnblogs.com/Pickuper/archive/2011/06/02/2068845.html

《Java编程思想》学习笔记(一)——再度理解OOP相关推荐

  1. Java编程思想学习笔记-第11章

    <?xml version="1.0" encoding="utf-8"?> Java编程思想学习笔记-第11章 Java编程思想学习笔记-第11章 ...

  2. JAVA编程思想学习笔记——第一章 对象导论

    搞了一年多java,野路子出身,发现java基础这块还是相当的薄弱!故决定学习<Java编程思想>这本书.在此把学习的知识点记录下! 面向对象的五大特性 1.万物皆为对象 2.程序是对象的 ...

  3. Java编程思想学习笔记4 - 序列化技术

    今天来学习下Java序列化和反序列化技术,笔者对<Java编程思想>中的内容,结合网上各位前辈的帖子进行了整理和补充,包括: 序列化概述 Java原生序列化技术 Hessian序列化技术 ...

  4. Java编程思想 学习笔记1

    一.对象导论 1.抽象过程 Alan Kay曾经总结了第一个成功的面向对象语言.同时也是Java所基于的语言之一的Smalltalk的五个基本特性,这些特性表现了纯粹的面向对象程序设计方式 1)万物皆 ...

  5. Java编程思想 学习笔记7

    七.复用类 1.组合语法 在新的类中产生现有类的对象.由于新的类是由现有类的对象所组成,所以这种方法叫做组合. 类中域为基本类型时能够自动被初始化为零.对象引用被初始化为null. 编译器不是简单地为 ...

  6. java编程思想 学习笔记(2)

    第二章     一切都是对象 用引用(reference)操纵对象 String s = "asdf"; String s; 但这里所创建的只是引用,并不是对象.如果此时向s 发送 ...

  7. java编程思想学习笔记(第七章:复用类)

    复用代码是java众多引人注目的功能之一.但是要想成为极具革命性的语言,仅仅能够复制代码并对之加以改变是不够的,它还必须能够做更多的事情. 7.1组合语法 将对象引用置于新类中.每一个非基本类型的对象 ...

  8. JAVA编程思想读书笔记(三)--RTTI

    接上篇JAVA编程思想读书笔记(二) 第十一章 运行期类型判定 No1: 对于作为程序一部分的每个类,它们都有一个Class对象.换言之,每次写一个新类时,同时也会创建一个Class对象(更恰当的说, ...

  9. 01.Java 编程入门学习笔记20210307

    Java 编程入门学习笔记-day01 第0章:编程入门 1.计算机的概述 计算机 = 硬件 + 软件 1.1硬件:冯诺依曼体系 CPU: CPU的衡量标准:速度的计量单位是赫兹(Hz),1Hz相当于 ...

  10. Java编程思想学习(一)----对象导论中多态的理解

    1.1抽象过程 1)万物皆对象. 2)程序是对象的集合,他们通过发送消息来告知彼此所要求做的. 3)每个对象都有自己的由其他对象所构成的存储. 4)每个对象都拥有其类型. 5)某一特定类型的所有对象都 ...

最新文章

  1. python下载安装教程3.8.1-Python3.8.1下载
  2. Windows下卸载Oracle
  3. 云后台Bmob的一些资料
  4. 利用python进行数据分析第一版和第二版区别_《利用Python进行数据分析·第2版》第1章 准备工作...
  5. 作者:黄玲玲(1982-),女,博士,安徽省公共交通安全科学研究院副研究员。...
  6. (王道408考研数据结构)第四章串-第一节:串的定义和基本操作及存储结构
  7. 基于javaweb+jsp+mysql的美容院管理系统
  8. Oracle学习笔记(1)----忘记用户名的密码该如何找回
  9. c语言的退出程序代码,C语言实现关机小程序
  10. 高级终端termux下载不了Python_基于Termux打造Android手机渗透工具
  11. lambda表达式最实用的例子,最实用的案例
  12. dorado java_dorado事件
  13. 嵌入式硬件上电后,程序的运行过程剖析(CPU、FLASH、内存)
  14. 学生用计算机的按键名称,哪个键是空格?详细说明各种计算机按键[图形]的名称和功能...
  15. 引导区坏 计算机无法启动,小白告诉你Win10无法正常启动修复引导文件教程
  16. 没有想到,网易首席架构师竟用了500页笔记,把网络协议给趣谈了
  17. CSS3 SVG波浪线条动画js特效
  18. 【Android App】利用自带的人脸检测器和OpenCV检测人脸讲解及实战(附源码和演示 超详细)
  19. SpringCloud快速上手
  20. com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot construct instance of `x`

热门文章

  1. 在Vue.js中使用Mixin
  2. Python模块Pygame安装
  3. Debian,从安装到喜欢
  4. [linux/ unix] 查看占用端口的 进程ID 的区别
  5. U-boot主循环main_loop分析
  6. Facebook对MySQL全表扫描性能的改进
  7. 在report service中@参数的问题!
  8. “考虑对方的感受”之案例
  9. 在python语言中定义私有成员变量的方法是_Python在类中有“私有”变量吗?
  10. php开源路由器,路由 - Symfony开源 - Symfony中国