学而不思则罔,思而不学则殆

一、对象(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编程思想的总结(一)的更多相关文章

  1. 阅读java编程思想之一切都是对象

    温故而知新--- 1. 用句柄操作对象 现实生活中,我们可以把遥控器当作句柄,电视机当作对象.当我们拿到句柄(遥控器)的时候,我们是可以控制对象的(电视机).比如说调节音量大小,色彩等.那么在程序里, ...

  2. Java编程思想阅读收获

    15年8月份买了一本Java编程思想第四版中文版.之所以买中文版是因为我试读了同事的英文版发现自己英语水平还是有限,单词虽然认识,但对很多句子把握不准,这样看书太慢了,要理解英文还要理解技术有些hol ...

  3. 《Java编程思想》阅读笔记二

    Java编程思想 这是一个通过对<Java编程思想>(Think in java)进行阅读同时对java内容查漏补缺的系列.一些基础的知识不会被罗列出来,这里只会列出一些程序员经常会忽略或 ...

  4. 《Java编程思想》阅读笔记一

    Java编程思想 这是一个通过对<Java编程思想>(Think in java)第四版进行阅读同时对java内容查漏补缺的系列.一些基础的知识不会被罗列出来,这里只会列出一些程序员经常会 ...

  5. 【Java编程思想阅读笔记】Java数据存储位置

    Java数据存储位置 P46页有感 一.前置知识 栈是由系统自动分配的,Java程序员对栈没有直接的操作权限, 堆是所有线程共享的内存区域,栈 是每个线程独享的. 堆是由程序员自己申请的,在使用new ...

  6. JAVA编程思想——分析阅读

    需要源码.JDK1.6 .编码风格参考阿里java规约 7/12开始 有点意识到自己喜欢理论大而泛的模糊知识的学习,而不喜欢实践和细节的打磨,是因为粗心浮躁导致的么? cron表达式使用 设计能力.领 ...

  7. [Java编程思想-学习笔记]第3章 操作符

    3.1  更简单的打印语句 学习编程语言的通许遇到的第一个程序无非打印"Hello, world"了,然而在Java中要写成 System.out.println("He ...

  8. 《java编程思想》读书笔记(一)开篇&第五章(1)

    2017 ---新篇章  今天终于找到阅读<java编程思想>这本书方法了,表示打开了一个新世界. 第一章:对象导论 内容不多但也有20页,主要是对整本书的一个概括.因为已经有过完整JAV ...

  9. MyEclipse导入ant项目——Java编程思想

    北门煎饼东门串儿: <JAVA编程思想(Think in Java)>一书中提供了大量源代码,可是项目是用ant构建的.对于用惯了eclipse,netbeans等IDE的同学们可能有些手 ...

随机推荐

  1. jQuery 源码解析(六) $.each和$.map的区别

    $.each主要是用来遍历数组或对象的,例如: var arr=[11,12,13,14]; $.each(arr,function(element,index){ //遍历arr数组 console ...

  2. sql语句将一个表的数据拷贝到另一个表中

    假定有一个a表,一个b表,要将a表的数据拷贝到b表中. 1.如果a表和b表结构相同. insert into b select * from a; 2.如果a表和b表的结构不相同. insert in ...

  3. Gitlab 备份还原/迁移

    Gitlab 备份还原 备份数据:通过命令进行备份操作 gitlab-rake gitlab:backup:create ... [DISABLED] Creating backup archive: ...

  4. Logstash:把MySQL数据导入到Elasticsearch中

    Logstash:把MySQL数据导入到Elasticsearch中 前提条件 需要安装好Elasticsearch及Kibana. MySQL安装 根据不同的操作系统我们分别对MySQL进行安装.我 ...

  5. pycharm替换文件中所有相同字段方法

    1.打开要修改的文件 2.ctrl r调出替换功能,如图所示: 3.上面红框是需要更改的部分,下面红框是想要更改为部分,编辑后,点击“replace all”即可

  6. 纯C语言实现顺序队列

    #include <stdio.h> #include <stdlib.h> #define MAXSIZE 6 typedef int QElemType; typedef ...

  7. 腾讯WeTest兼容服务再次升级,支持小程序兼容

    WeTest 导读 小程序作为微信内能被便捷地获取和传播的工具,吸引着越来越多的开发者加入其中.无论是小游戏.零售.出行服务还是生活餐饮等,各行各业的小程序出现在用户的手机上,在给用户带来便利的同时, ...

  8. elasticsearch bulk

    情景介绍 公司2000W的数据从mysql 迁移至elasticsearch,以提供微服务.本文基于elasticsearch-py bulk操作实现数据迁移.相比于elasticsearch-dum ...

  9. android studio学习----自动导包

    介绍一个最有用的设置,我们只有每次引用一些类的时候必须要导包,而Studio可以通过设置自动导包,简直太实用了. 到 Preferences -> Editor -> Auto Impor ...

  10. Vue-组件模板抽离的写法

    VUE的模板分离写法. 1.第一种(不常用) <script type="text/x-template" id="myCpm"> <div& ...