java编程思想笔记(一)——面向对象导论
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编程思想笔记(一)——面向对象导论的更多相关文章
- Java编程思想 笔记
		date: 2019-09-06 15:10:00 updated: 2019-09-24 08:30:00 Java编程思想 笔记 1. 四类访问权限修饰词 \ 类内部 本包 子类 其他包 publ ... 
- java编程思想笔记(1)
		java编程思想笔记(1) 一,对象的创建和生命周期 对象的数据位于何处?怎样控制对象的生命周期? 在堆(heap)的内存池中动态地创建对象. java完全采用了动态内存分配方式. 二,垃圾回收器 自 ... 
- [Java编程思想] 第一章 对象导论
		第一章 对象导论 "我们之所以将自然界分解,组织成各种概念,并按其含义分类,主要是因为我们是整个口语交流社会共同遵守的协定的参与者,这个协定以语言的形式固定下来--除非赞成这个协定中规定的有 ... 
- #Java编程思想笔记(一)——static
		Java编程思想笔记(一)--static 看<Java编程思想>已经有一段时间了,一直以来都把笔记做在印象笔记上,今天开始写博客来记录. 第一篇笔记来写static关键字. static ... 
- Java编程思想学习(一)----对象导论中多态的理解
		1.1抽象过程 1)万物皆对象. 2)程序是对象的集合,他们通过发送消息来告知彼此所要求做的. 3)每个对象都有自己的由其他对象所构成的存储. 4)每个对象都拥有其类型. 5)某一特定类型的所有对象都 ... 
- 2.1(java编程思想笔记)位移操作
		java位移操作主要有两种: 有符号位移:有符号位移会保留原有数字正负性,即正数依然是正数,负数依然是负数. 有符号位左移时,低位补0. 有符号右移时:当数字为正数,高位补0.当数字为负时高位补1. ... 
- 7.JAVA编程思想笔记隐藏实施过程
		欢迎转载,转载请标明出处:http://blog.csdn.net/notbaron/article/details/51040237 "进行面向对象的设计时,一项主要的考虑是:怎样将发生变 ... 
- java编程思想笔记(第一章)
		Alan Kay 第一个定义了面向对象的语言 1.万物皆对象 2.程序是对象的集合,他们彼此通过发送消息来调用对方. 3.每个对象都拥有由其他对象所构成的存储 4.每个对象都拥有其类型(TYpe) 5 ... 
- Java编程思想笔记
		打好java基础 后续会增加相应基础笔试题 目录如下 1 对象导论2 一切都是对象3 操作符4 控制执行流程5 初始化与清理6 访问控制权限7 复用类8 多态9 接口10 内部类11 持有对象12 通 ... 
随机推荐
- VMware7安装CentOS6.5教程
			VMware7安装CentOS6.5教程 http://www.91linux.com/html/2014/CentOS_0415/9727.html工欲善其事,必先利其器.学习linux系统,必须先 ... 
- xheditor 进阶
			xhEditor提供两种方式初始化编辑器: 方法1:利用class属性来初始化和传递各种初始化参数,例: class="xheditor {skin:'default'}" 方法 ... 
- [转]Windows下搭建PHP开发环境
			原文:http://www.cnblogs.com/pharen/archive/2012/02/06/2340628.html PHP集成开发环境有很多,如XAMPP.AppServ......只要 ... 
- Run QTP script wiht host in HPQC
- WCF入门教程(图文)VS2012
			WCF入门教程(图文)VS2012 上一遍到现在已经有一段时间了,先向关注本文的各位“挨踢”同仁们道歉了.小生自认为一个ITer如果想要做的更好,就需要将自己的所学.所用积极分享出来,接收大家的指导和 ... 
- WebApi HttpMsgHanler的执行顺序
			原来忘记在哪个大牛的博客上看到的,说添加顺序与执行顺序是相反的,事实在下边:直接上代码: //STEP10,不论如何先记录下来请求信息 if (msgHandlerSettings.LoggingHa ... 
- 统计学习方法(三)——K近邻法
			/*先把标题给写了.这样就能经常提醒自己*/ 1. k近邻算法 k临近算法的过程,即对一个新的样本,找到特征空间中与其最近的k个样本,这k个样本多数属于某个类,就把这个新的样本也归为这个类. 算法 ... 
- [转]编译 JavaScriptCore For iOS
			from: http://phoboslab.org/log/2011/06/javascriptcore-project-files-for-ios github: https://github.c ... 
- ios学习笔记之2天来总结
			学了2天,小结下. ios的基本代码执行流程: 与java的基本异同: 异: 1.基类:java中Object是所有类的父类,而objective-c的根类为NSObject 2.默认访问类型:jav ... 
- Redis系统学习 四、超越数据结构
			5种数据结构组成了Redis的基础,其他没有关联特定数据结构的命令也有很多.我们已经看过一些这样的命令:info,select,flushdb,multi,exec,discard,watch,和ke ... 
