阅读java编程思想的总结(一)
学而不思则罔,思而不学则殆
一、对象(Object)
1、机器模型(方案空间),实际解决问题的问题模型(问题空间)。
2、我们将问题空间中的元素以及它们在方案空间的表示物称为“对象”(Object)。
3、OOP(面向对象编程)允许我们根据问题来描述问题,而不是根据方案。
4、与现实世界中的“对象”或“物体”相比,编程“对象”也有他们自己的特征和行为。
二、Java面向对象程序设计方法
1、所有的东西都是对象,可将对象想象成一种新型变量,它保存着数据,可以要求它对自身进行操作。
2、程序是一大推对象的组合,通过消息传递(比如方法调用),各个对象知道自己该做些什么。
3、每个对象都有自己的存储空间,也可以容纳其它对象(其它对象必须是private)。
4、每一个对象有一种类型。一个类的最重要特征是能将什么消息发送给它。
5、同一类所有对象都能接收相同的消息。
三、接口(interface)
1、现实世界中,每一种类都有它自己的特征与行为,比如说人类,有黑人,白人等特征;人能说话,能直立行走这些行为等。
2、程序世界里,每一个对象都隶属一个特定的“类”,这个类也有自己的行为和通用特征。
3、所以,在面向对象编程中,我们要建立各种各样的类(class),可根据实际情况生成许多对象 。随后这些对象作为要解决的问题在元素中处理。
4.、如何在问题空间的元素与方案空间的元素之间建立理想的一一对应或映射关系?这就有了接口(interface)的出现。每个对象都能接收特定的请求,我们想对象发出的请求的通过它的接口(interface)来定义的,对象的类规定了它的接口形式。类与接口的等价或对应关系是面向编程设计的基础。
以灯泡为例子,有开灯、关灯、调亮、调暗等接口。而要调用的话,需要创建(new)一个对象,通过对象的句柄去调用。

四、方案实现的隐藏
1、说白了就是访问控制
| 同一个类 | 同一个包 | 不同包的子类 | 不同包的非子类 | |
| public | 可以访问 | 可以访问 | 可以访问 | 可以访问 |
| protect | 可以访问 | 可以访问 | 可以访问 | |
| default | 可以访问 | 可以访问 | ||
| private | 可以访问 |
2、方案的重用,许多人认为设计方案的重用是面向对象程序设计提供的最伟大的一种杠杆。我们把那些公共的方法拿出来封装成一个接口,然后提供给其它需要的对象继承重复使用。
3、继承(extends),重新使用接口。比如说父类有能跑的方法,当子类继承了父类之后,子类除了自己的方法外,还多了一个父类的方法。我们可以改善父类方法函数的行为,也可以直接继承它的行为。
阅读java编程思想的总结(一)的更多相关文章
- 阅读java编程思想之一切都是对象
温故而知新--- 1. 用句柄操作对象 现实生活中,我们可以把遥控器当作句柄,电视机当作对象.当我们拿到句柄(遥控器)的时候,我们是可以控制对象的(电视机).比如说调节音量大小,色彩等.那么在程序里, ...
- Java编程思想阅读收获
15年8月份买了一本Java编程思想第四版中文版.之所以买中文版是因为我试读了同事的英文版发现自己英语水平还是有限,单词虽然认识,但对很多句子把握不准,这样看书太慢了,要理解英文还要理解技术有些hol ...
- 《Java编程思想》阅读笔记二
Java编程思想 这是一个通过对<Java编程思想>(Think in java)进行阅读同时对java内容查漏补缺的系列.一些基础的知识不会被罗列出来,这里只会列出一些程序员经常会忽略或 ...
- 《Java编程思想》阅读笔记一
Java编程思想 这是一个通过对<Java编程思想>(Think in java)第四版进行阅读同时对java内容查漏补缺的系列.一些基础的知识不会被罗列出来,这里只会列出一些程序员经常会 ...
- 【Java编程思想阅读笔记】Java数据存储位置
Java数据存储位置 P46页有感 一.前置知识 栈是由系统自动分配的,Java程序员对栈没有直接的操作权限, 堆是所有线程共享的内存区域,栈 是每个线程独享的. 堆是由程序员自己申请的,在使用new ...
- JAVA编程思想——分析阅读
需要源码.JDK1.6 .编码风格参考阿里java规约 7/12开始 有点意识到自己喜欢理论大而泛的模糊知识的学习,而不喜欢实践和细节的打磨,是因为粗心浮躁导致的么? cron表达式使用 设计能力.领 ...
- [Java编程思想-学习笔记]第3章 操作符
3.1 更简单的打印语句 学习编程语言的通许遇到的第一个程序无非打印"Hello, world"了,然而在Java中要写成 System.out.println("He ...
- 《java编程思想》读书笔记(一)开篇&第五章(1)
2017 ---新篇章 今天终于找到阅读<java编程思想>这本书方法了,表示打开了一个新世界. 第一章:对象导论 内容不多但也有20页,主要是对整本书的一个概括.因为已经有过完整JAV ...
- MyEclipse导入ant项目——Java编程思想
北门煎饼东门串儿: <JAVA编程思想(Think in Java)>一书中提供了大量源代码,可是项目是用ant构建的.对于用惯了eclipse,netbeans等IDE的同学们可能有些手 ...
随机推荐
- .NET Core 学习笔记
1. System.Composition – Using Import Attributes 截图: 2. System.Composition – Using Reflection 截图: 以后会 ...
- golang io中io.go解读
目录 1. 整体大纲 2. 接口 读 写 关闭 寻址 3. 函数 读 写 复制 4. 结构体 SectionReader LimitedReader teeReader 5. 备注 根据golang ...
- 在IIS配置时没有启用目录浏览功能 :HTTP 错误 403.14
在IIS配置时没有启用目录浏览功能,浏览网站时,会出现“HTTP 错误 403.14–Forbidden,Web服务器被配置为不列出此目录内容”的提示,怎么解决这个问题呢? 01 02 03 04 0 ...
- ExcelHelper based on NPOI
//Export data to excel via NPOI public static void ExportDataTableToExcel(DataTable dataTable, strin ...
- scrapy学习笔记(一)
环境:Windows 7 x64 Python3.7.1 pycharm 一.安装scrapy 1.1linux系统使用:pip install scrapy 1.2Windows系统: pi ...
- python数据挖掘介绍
目录 一:什么是数据挖掘 二:数据挖掘的基本任务 三:数据挖掘流程 四:数据挖掘建模工具 在python对数据的处理方式中,数据挖掘和数据分析是两个重要的方式,目的是为了从数据中获取具有科研或者商 ...
- MySQL问题记录——定义timestamp类型的数据
MySQL问题记录——定义timestamp类型的数据 摘要:本文主要记录了在使用MySQL的过程中定义timestamp类型数据时遇到的问题以及解决方案. 问题重现 在Windows环境下安装MyS ...
- Linux之Shell编程(15)
case: for: while:
- 几种高效的Java工具类推荐
本文将介绍了十二种常用的.高效的Java工具类 在Java中,工具类定义了一组公共方法,这篇文章将介绍Java中使用最频繁及最通用的Java工具类. 在开发中,使用这些工具类,不仅可以提高编码效率,还 ...
- 深入浅出讲解低功耗蓝牙(BLE)协议栈
详解BLE连接建立过程https://www.cnblogs.com/iini/p/8972635.html 详解BLE 空中包格式—兼BLE Link layer协议解析https://www.cn ...