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 通 ...
随机推荐
- 在标记的HREF属性中javascript:alert(this.innerHTML)会怎么样?
原文:在标记的HREF属性中javascript:alert(this.innerHTML)会怎么样? <a href="javascript:alert(this.innerHTML ...
- C#中抽象类和接口的区别
原文:C#中抽象类和接口的区别 大家在编程时都容易把抽象类和接口搞混,下面为大家从概念上讲解抽象类和接口的区别: 一.抽象类: 含有abstract修饰符的class即为抽象类,抽象类是特殊的类,只是 ...
- python基础课程_学习笔记20:标准库:有些收藏夹——os
标准库:有些收藏夹 os os模块为您提供访问多个操作系统服务特征. os和它的子模块os.path还包含一些用于检查.构造.删除文件夹和文件的函数,以及一些处理路径的函数. os模块中一些重要函数和 ...
- leetcode第38题--Combination Sum
题目: Given a set of candidate numbers (C) and a target number (T), find all unique combinations in C ...
- OpenWrt的UCI系统
http://wiki.openwrt.org/doc/uci UCI是Unified Configuration Interface的缩写,翻译成中文就是统一配置接口,用途就是为OpenWrt提供一 ...
- javascript 学习总结(二)Array数组
1.数组常用方法 var colors = ["red", "blue", "green"]; //creates an array wit ...
- Memcache存储大量数据的问题
Memcache存储大数据的问题 huangguisu Memcached存储单个item最大数据是在1MB内,假设数据超过1M,存取set和get是都是返回false,并且引起性能的问题. 我们之 ...
- SD卡FAT32获得高速的文件格式(图文介绍)
说明: MBR :Master Boot Record ( 主引导记录) DBR :DOS Boot Record ( 引导扇区) FAT :File Allocation Table ( 文件分配表 ...
- iOS基础 - Quartz 2D绘图的基本步骤
一.使用Quartz 2D绘图的基本步骤 1) 获取上下文context(绘制图形的地方) 2) 设置路径(路径是用来描述形状的) 3) 将路径添加到上下文 4) 设置上下文属性(设置颜色,线宽, ...
- SQL 语句中的union操作符
前端时间,用到了union操作符,周末有时间总结下,w3c手册内容如下: SQL UNION操作符 UNION操作符用于合并两个或多个select语句的结果集. 注意:UNION内部select语句必 ...