1.1 抽象过程

  1.所有编程语言都提供抽象编程机制。

  2.人们所能够解决的问题的复杂性直接取决于抽象的类型(所抽象的是什么)和质量。

  3.“命令式”语言(basic,c等)都是对汇编语言的抽象,但是仍然要求解决问题时依赖计算机的结构,程序员必须建立起在机器模型(如计算机)和实际待解决问题(例如一项业务)之间的关联。

  4.对机器建模的方式就是只针对待解问题建模。如 lisp和apl,只能解决某个特定问题。

  5.面向对象方式则通过向实际待解问题提供表示问题元素的工具而更进一步。这种表示方式非常通用,不会局限于特定问题。我们将实际待解问题中的元素在机器模型中的表示叫做“对象”。这种思想的实质就是:通过添加新类型的对象来使自己适应于某个特定问题。

     归纳:编程语言的演变实质上是人们利用计算机解决实际问题的思维演变。

1.2 对象的基本特性

  1.万物皆为对象

  2.程序是对象的集合,他们同于发送消息来告知彼此所要做的。

  3.每个对象都有自己的由其他对象所构成的存储。

  4.每个对象都拥有其类型。

  5.某一特定类型的所有对象都可以接受同样消息。

  对象的描述:对象具有状态(内部数据)、行为(方法)和标识(彼此区分)。

1.3 每个对象都有一个接口

  类:描述了具有相同特性(数据元素)和行为(功能)的对象集合。实际上就是一种数据类型。

  (对象)类 解决了实际问题元素如何在机器模型中如何表示的问题。

  要解决问题,就得按照一定的方法操作对象(实际问题元素),而请求的方法是什么?这个则由接口来定义。接口确定了对某一个特定对象所能发出的请求。决定接口的便是类型。

  例如:我们可以将男人和女人都以人的类型在机器模型中表示。而人这个类型决定了其接口可以定义:吃饭,思考这样的请求方法。

1.4 继承

  1.类型不仅描述了作用于一个对象集合上的约束条件,同时还有与其他类型之间的关系。比如:子类继承父类。

  2补充:类:数据元素+方法+相互关系

1.5 多态

  1.把一个对象不当做它所属的特定类型来对待,而是将其当做其基类的对象对待。这使得人们编写出不依赖特定类型的代码。

  2.当一个对象发送消息时,即使涉及向上转型该对象也知道要执行什么样的正确行为。

  总结:面向对象的思想就是万物皆为对象,将实际问题中的元素以对象的形式在计算机中表示,通过对对象的归纳划分不同的类型,根据具体类型定义对应的接口。

java编程思想笔记(一)——面向对象导论的更多相关文章

  1. Java编程思想 笔记

    date: 2019-09-06 15:10:00 updated: 2019-09-24 08:30:00 Java编程思想 笔记 1. 四类访问权限修饰词 \ 类内部 本包 子类 其他包 publ ...

  2. java编程思想笔记(1)

    java编程思想笔记(1) 一,对象的创建和生命周期 对象的数据位于何处?怎样控制对象的生命周期? 在堆(heap)的内存池中动态地创建对象. java完全采用了动态内存分配方式. 二,垃圾回收器 自 ...

  3. [Java编程思想] 第一章 对象导论

    第一章 对象导论 "我们之所以将自然界分解,组织成各种概念,并按其含义分类,主要是因为我们是整个口语交流社会共同遵守的协定的参与者,这个协定以语言的形式固定下来--除非赞成这个协定中规定的有 ...

  4. #Java编程思想笔记(一)——static

    Java编程思想笔记(一)--static 看<Java编程思想>已经有一段时间了,一直以来都把笔记做在印象笔记上,今天开始写博客来记录. 第一篇笔记来写static关键字. static ...

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

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

  6. 2.1(java编程思想笔记)位移操作

    java位移操作主要有两种: 有符号位移:有符号位移会保留原有数字正负性,即正数依然是正数,负数依然是负数. 有符号位左移时,低位补0. 有符号右移时:当数字为正数,高位补0.当数字为负时高位补1. ...

  7. 7.JAVA编程思想笔记隐藏实施过程

    欢迎转载,转载请标明出处:http://blog.csdn.net/notbaron/article/details/51040237 "进行面向对象的设计时,一项主要的考虑是:怎样将发生变 ...

  8. java编程思想笔记(第一章)

    Alan Kay 第一个定义了面向对象的语言 1.万物皆对象 2.程序是对象的集合,他们彼此通过发送消息来调用对方. 3.每个对象都拥有由其他对象所构成的存储 4.每个对象都拥有其类型(TYpe) 5 ...

  9. Java编程思想笔记

    打好java基础 后续会增加相应基础笔试题 目录如下 1 对象导论2 一切都是对象3 操作符4 控制执行流程5 初始化与清理6 访问控制权限7 复用类8 多态9 接口10 内部类11 持有对象12 通 ...

随机推荐

  1. [翻译]如何编写GIMP插件(二)

    写在前面: 本人翻译并不专业,甚至英语不好,翻译内容仅供参考.由于博主是边学边翻译,所以不能保证翻译的准确性和正确性,如果可以,请查看原版学习,本文仅作学习记录之用. <How to write ...

  2. leetcode第20题--Valid Parentheses

    Problem: Given a string containing just the characters '(', ')', '{', '}', '[' and ']', determine if ...

  3. Servlet配置load-on-startup

    <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http:// ...

  4. 【工作笔记二】ASP.NET MVC框架下使用MVVM模式

    ASP.NET MVC框架下使用MVVM模式 原文:http://www.cnblogs.com/n-pei/archive/2011/07/21/2113022.html 对于asp.net mvc ...

  5. Jumony快速抓取网页

    Jumony快速抓取网页 --- Jumony使用笔记--icode   作者:郝喜路   个人主页:http://www.cnicode.com      博客地址:http://haoxilu.c ...

  6. dcmtk常用命令

    dump2dcm 把普通文件转换成含有dcm头的文件,参数为源文件,目标文件 例:dump2dcm q1.txt query.dcm 表示把q1.txt文件转换为query.dcm dcmdump 阅 ...

  7. Ajax运用总结B

    Jquery重新学习之八[Ajax运用总结B]   上一篇简单介绍普通javascript以及Jquery的AJAX方法,其中Jquery.ajax()是功能比较强悍的底层方法,可以更多地关注实现过程 ...

  8. c#拷贝

    话谈c#拷贝 c#中类型分为值类型和引用类型,值类型对象赋值是本身就是赋的自身的一个副本,而引用类型赋值时则赋的是指向堆上的内存,假如我们不想赋这个地址而想将对象赋过去要怎么做呢?首先要知道拷贝分为浅 ...

  9. c#二进制、十进制、16进制之间的转换

    //十进制转二进制 Console.WriteLine(Convert.ToString(69, 2)); //十进制转八进制 Console.WriteLine(Convert.ToString(6 ...

  10. JS的基本概念

    JS的基本概念 任何语言的核心都必然会描述这门语言最基本的工作原理.而描述的内容通常都要涉及这门语言的语法,操作符,数据类型,内置功能等用于构建复杂解决方案的概念.Ecma-262通过叫做EcmaSc ...