回忆面向对象思想

 
 
    面向对象,主页君也不敢对其多说什么,毕竟这是一个看似简单,但是其实蕴含很深层次理
 
论的东西,并不是看书就可以理解的,其实也是要在很多实际操作中学习,积累。
 
     面向对象编程(Object Oriented Programming,OOP,面向对象程序设计)是一种计算机
 
编程架构。OOP 的一条基本原则是计算机程序是由单个能够起到子程序作用的单元或对象组
 
合而成。OOP 达到了软件工程的三个主要目标:重用性、灵活性和扩展性。为了实现整体运
 
算,每个对象都能够接收信息、处理数据和向其它对象发送信息。这个是它的基本概念。具体
 
引用自百度百科,百度百科引用自哪我也无从知道了哈。这个概念通俗易懂,是主页君见过的
 
写的比较好的解释了,话说OOP的架构让我们的开发更加敏捷,方便,减少了代码的复杂度,
 
不容易出错,确实是一个很好的编程框架
 
     下面来说几个概念:
 
    1)对象 对象是运行期的基本实体,它是一个封装了数据和操作这些数据的代码的逻辑实
 
体。
 
 
 
  2)类 类是具有相同类型的对象的抽象。一个对象所包含的所有数据和代码可以通过类来
 
构造。
 
 
 
  3)封装 封装是将数据和代码捆绑到一起,避免了外界的干扰和不确定性。对象的某些数
 
据和代码可以是私有的,不能被外界访问,以此实现对数据和代码不同级别的访问权限。
 
 
 
  4)继承 继承是让某个类型的对象获得另一个类型的对象的特征。通过继承可以实现代码
 
的重用:从已存在的类派生出的一个新类将自动具有原来那个类的特性,同时,它还可以拥有
 
自己的新特性。
 
 
 
  5)多态 多态是指不同事物具有不同表现形式的能力。多态机制使具有不同内部结构的对
 
象可以共享相同的外部接口,通过这种方式减少代码的复杂度。
 
 
 
  6)动态绑定 绑定指的是将一个过程调用与相应代码链接起来的行为。动态绑定是指与给
 
定的过程调用相关联的代码只有在运行期才可知的一种绑定,它是多态实现的具体形式。
 
 
 
  7)消息传递 对象之间需要相互沟通,沟通的途径就是对象之间收发信息。消息内容包括
 
接收消息的对象的标识,需要调用的函数的标识,以及必要的信息。消息传递的概念使得对现
 
实世界的描述更容易。
 
 
 
  8)方法 是定义一个类可以做的,但不一定会去做的事。
 
 面向对象主要特征:
 
 
 
  封装性:封装是一种信息隐蔽技术,它体现于类的说明,是对象的重要特性。封装使数据
 
和加工该数据的方法(函数)封装为一个整体,以实现独立性很强的模块,使得用户只能见到
 
对象的外特性(对象能接受哪些消息,具有那些处理能力),而对象的内特性(保存内部状态
 
的私有数据和实现加工能力的算法)对用户是隐蔽的。封装的目的在于把对象的设计者和对象
 
者的使用分开,使用者不必知晓行为实现的细节,只须用设计者提供的消息来访问该对象。
 
 
 
  继承性:继承性是子类自动共享父类之间数据和方法的机制。它由类的派生功能体现。一
 
个类直接继承其它类的全部描述,同时可修改和扩充。继承具有传递性。继承分为单继承(一
 
个子类只有一父类)和多重继承(一个类有多个父类)。类的对象是各自封闭的,如果没继承
 
性机制,则类对象中数据、方法就会出现大量重复。继承不仅支持系统的可重用性,而且还促
 
进系统的可扩充性。
 
 
 
  多态性:对象根据所接收的消息而做出动作。同一消息为不同的对象接受时可产生完全不
 
同的行动,这种现象称为多态性。利用多态性用户可发送一个通用的信息,而将所有的实现细
 
节都留给接受消息的对象自行决定,如是,同一消息即可调用不同的方法。例如:Print消息被
 
发送给一图或表时调用的打印方法与将同样的Print消息发送给一正文文件而调用的打印方法会
 
完全不同。多态性的实现受到继承性的支持,利用类继承的层次关系,把具有通用功能的协议
 
存放在类层次中尽可能高的地方,而将实现这一功能的不同方法置于较低层次,这样,在这些
 
低层次上生成的对象就能给通用消息以不同的响应。在OOP中可通过在派生类中重定义基类函
 
数(定义为重载函数或虚函数)来实现多态性。
 
这三个特征便是OOP的五所不能之处,OC也是遵循了其中的很多特点,当然也有特殊之处。
 
这个就算复习一下知识吧,话说这些东西并不是背的,只有在以后的写程序中多多体会。 

Java核心思想的更多相关文章

  1. 深入Java核心 Java中多态的实现机制(1)

    在疯狂java中,多态是这样解释的: 多态:相同类型的变量,调用同一个方法时,呈现出多中不同的行为特征, 这就是多态. 加上下面的解释:(多态四小类:强制的,重载的,参数的和包含的) 同时, 还用人这 ...

  2. 《深入理解Spark:核心思想与源码分析》——SparkContext的初始化(叔篇)——TaskScheduler的启动

    <深入理解Spark:核心思想与源码分析>一书前言的内容请看链接<深入理解SPARK:核心思想与源码分析>一书正式出版上市 <深入理解Spark:核心思想与源码分析> ...

  3. Java编程思想——初始化与清理

    PS:最近一直忙于项目开发..所以一直没有写博客..趁着空闲期间来一发.. 学习内容: 1.初始化 2.清理 1.初始化   虽然自己的Java基础还是比较良好的..但是在解读编程思想的时候还是发现了 ...

  4. 《深入理解Spark:核心思想与源码分析》(前言及第1章)

    自己牺牲了7个月的周末和下班空闲时间,通过研究Spark源码和原理,总结整理的<深入理解Spark:核心思想与源码分析>一书现在已经正式出版上市,目前亚马逊.京东.当当.天猫等网站均有销售 ...

  5. 《深入理解Spark:核心思想与源码分析》(第2章)

    <深入理解Spark:核心思想与源码分析>一书前言的内容请看链接<深入理解SPARK:核心思想与源码分析>一书正式出版上市 <深入理解Spark:核心思想与源码分析> ...

  6. 《深入理解Spark:核心思想与源码分析》一书正式出版上市

    自己牺牲了7个月的周末和下班空闲时间,通过研究Spark源码和原理,总结整理的<深入理解Spark:核心思想与源码分析>一书现在已经正式出版上市,目前亚马逊.京东.当当.天猫等网站均有销售 ...

  7. 《深入理解Spark:核心思想与源码分析》正式出版上市

    自己牺牲了7个月的周末和下班空闲时间,通过研究Spark源码和原理,总结整理的<深入理解Spark:核心思想与源码分析>一书现在已经正式出版上市,目前亚马逊.京东.当当.天猫等网站均有销售 ...

  8. Hibernate核心思想—ORM机制(一)

    转:http://blog.csdn.net/wanghuan203/article/details/7566518 hibernate是一个采用ORM(Object/Relation Mapping ...

  9. Java编程思想(11~17)

    [注:此博客旨在从<Java编程思想>这本书的目录结构上来检验自己的Java基础知识,只为笔记之用] 第十一章 持有对象 11.1 泛型和类型安全的容器>eg: List<St ...

随机推荐

  1. T-SQL 将存储过程结果插入到表中

    解决方案1: CREATE TABLE #tmpBus (    COL1 INT,    COL2 INT )   INSERT INTO #tmpBus Exec SpGetRecords 'Pa ...

  2. 笔记整理之 Bulk Insert

    之前2篇日志整理了BCP大致的用法,这次整理一下它的兄弟 Bulk Insert 的写法以及和bcp那边的结合的用法. 首先,Bulk Insert 语句要在连接了Sql Server 服务器之后才执 ...

  3. windows系统快捷操作の进阶篇

    上次介绍了windows系统上一些自带的常用快捷键,有些确实很方便,也满足了我们的一部分需求.但是我们追求效率的步伐怎会止步于此?这一次我将会进一步介绍windows上提升效率的方法. 一:运行 打开 ...

  4. java HashMap

    HashMap 的性能因子 1. 容量:表示桶位的数量. 2. 初始容量: 表在创建是所拥有的桶位数.   如果你知道将要在HashMap存储多少项,创建一个初始容量合适的HashMap将可以避免自动 ...

  5. [WPF系列]-基础系列 TabControl应用

    引言 Tabcontrol控件也是我们在项目中经常用到的一个控件,用它将相关的信息组织在一起分类显示. 简介     ========================================= ...

  6. Android APP 读取 AndroidManifest.xml 中的版本信息详解

    APP都会涉及到版本的问题,Android APP的版本信息保存在AndroidManifest.xml文件的顶部.如下图: 有2个属性表示,“android:versionCode”和“androi ...

  7. 【2016-11-6】【坚持学习】【Day21】【子窗口关闭时,同步关闭它的主窗口(方法二)】

    根据上文,在子窗口设置一个委托.然后在子窗口关闭事件,执行委托实例,然后在主窗口增加监听委托的方法.... 想想,本事关闭事件就是一个特殊的委托.那么干嘛还要特意去声明一个新的呢?多此一举. 于是有下 ...

  8. httpclient进行basic auth认证

    private HttpClientContext context = HttpClientContext.create(); public void addUserOAuth(String user ...

  9. 关于selenium的CI、框架……

    这段时间除了项目测试外,主要在做web自动化的事情,大致总结一下吧,总体的设计模式pageobject+pagefactory+testng的数据驱动,项目用maven来构建,使用jenkins集成, ...

  10. 基于移动端Reactive Native轮播组件的应用与开发详解

    总结下这段时间学习reactive native的一些东西,我们来认识一下,被炒得这么火的rn,究竟是个什么东西,以及如何去搭建自己的demo. reactive  native是什么 由facebo ...