OO/A/D/P

对象和类 三大特征

对象:

对象是面向对象语言的一个极为重要的特点,所有的面向对象语言都有对象的共性。

1. 职责(单一)

2. 属性(数据、可改变的)

3. 函数(行为、方法、业务算法)

总结:一个完整的对象是具有属性和行为以及它自身的职责。

一个完整的对象是具有属性和行为以及它自身的职责。

类:

任何对象都需要经过一个设计的阶段,通过设计,就可以很好的描述一个对象的内容,那么,设计的工作就是由类来完成。

因此,类专门设计和描述了同一类对象共有的特征

总结:通过类设计出来的对象就可以在计算机中的JVM执行。

对象之间的通信:

有时候,一个大的任务是需要很多个不同的对象协力来完成,这时某个对象会需要另外一个对象的职责功能来协助。

创建对象--->调用对象的方法-->返回结果。这个过程就是一次通信

封装:

隐藏内部的实现细节。

1.包具有封装的特性,控制类的访问。

2.类也具有封装的特性,控制成员(属性、行为)的访问。

3.行为本身也具有封装的特性,隐藏了功能的实现细节。

主要都是通过访问修饰符进行控制。

继承:

继承的前提条件是要有父类,才有继承。

继承的特点是提取子类的共性,避免重复。

重载和重写的特点:

1.重写

只能发生在父类和子类之间,方法名、返回值类型、参数个数和类型都必须相同,访问修饰符要大于或等于父类的级别。

当父类继承的方法不能满足当前的业务场景时,子类可以重写该方法。

2.重载

可以发生在父类和子类之间,也可以发生在本类当中。要求方法名相同,方法的参数个数和类型必须不同,对返回值和访问修饰符没有要求

多态:

多态同样是发生在父类和子类之间或者是接口与实现类之间。

“父类类型,子类对象。编译时看父类,运行时看子类”

不同的子类,在不同的业务场景中可以充当其父类的角色在运行,

看到的还是其父类的类型。

重写:属于运行时多态。(在运行时决定。如果子类发生了重写,那么将执行重写后的方法)

重载:属于编译时多态。(在编译时决定。在编译阶段就明确制定调用的是

OO.A.D.P的更多相关文章

  1. GLUT的简洁OO封装

    毕业设计用到了OpenGL,由于不会用MFC和Win32API做窗口程序:自然选用了GLUT.GLUT很好用,就是每次写一堆Init,注册callback,觉得有点恶心,于是对他做了简单的OO封装.记 ...

  2. Atitit 基于sql编程语言的oo面向对象大规模应用解决方案attilax总结

    Atitit 基于sql编程语言的oo面向对象大规模应用解决方案attilax总结 1. Sql语言应该得到更大的范围的应用,1 1.1. 在小型系统项目中,很适合存储过程写业务逻辑2 1.2. 大型 ...

  3. OO中,先有对象还是先有类?

    就是问,在面向对象思想里,先有对象还是先有类,乍一看和先有鸡蛋还是先有鸡是一类问题,其实不然!这个问题,在lz考研复试的时候被面试官问过,一模一样,如今又在一个笔试题里看到了类似的题目,眨一下,有人会 ...

  4. OO方式下,ALV TREE和ALV GRID的不同之处

    作为大部分报表程序的基础,ALV GRID差不多是每个ABAP开发者必须了解和掌握的内容,因此网上也不乏相关资料,而ALV TREE的应用相对较少,中文资料也就比较少见了.实际上,ALV TREE和A ...

  5. 从人类社会的角度看OO(独家视角)

    引言 在OO的工作中,我们一定会涉及到类,抽象类和接口.那么类和抽象类以及接口到底扮演的什么角色? 本文主要是从人类社会的角度阐述类与抽象类以及接口的"社会"关系,从而让我们抛弃书 ...

  6. HDU5288 OO’s Sequence

    Problem Description OO has got a array A of size n ,defined a function f(l,r) represent the number o ...

  7. lua下的简单OO实现

    笔者学习了当前(文末各文献)lua下的各种OO实现方法.略作笔记. 也提出了一些自己的想法.主要还是记录供将来着之参考.   1.概述   首先[2]PIL第二版中给出了OO的基于table的实现方式 ...

  8. OO的五大原则是指SRP、OCP、LSP、DIP、ISP。

    OO的高层原则,面向对象设计的基本原则 设计模式之六大原则--开闭原则(OCP) 设计模式之六大原则--迪米特法则(LoD,LKP) 设计模式之六大原则--接口隔离原则(ISP) 设计模式之六大原则- ...

  9. Atitit usbQb212 oo 面向对象封装的标准化与规范解决方案java c# php js

    Atitit usbQb212 oo 面向对象封装的标准化与规范解决方案java c# php js 1.1. 封装性是面象对象编程中的三大特性之一  三个基本的特性:封装.继承与多态1 1.2. 魔 ...

随机推荐

  1. php 获取远程图片保存到本地

    php 获取远程图片保存到本地 使用两个函数 1.获取远程文件 2.把图片保存到本地 /** * 获取远程图片并把它保存到本地 * $url 是远程图片的完整URL地址,不能为空. */ functi ...

  2. java.lang.NoClassDefFoundError 解决方案

    http://stackoverflow.com/questions/9870995/android-java-lang-noclassdeffounderror 像网络了上说的一般这种问题是 运行时 ...

  3. JSTL 核心标签库 使用

    JSTL 核心标签库标签共有13个,功能上分为4类: 1.表达式控制标签:out.set.remove.catch 2.流程控制标签:if.choose.when.otherwise 3.循环标签:f ...

  4. 分布式ID生成器 zz

    简介 这个是根据twitter的snowflake来写的.这里有中文的介绍. 如上图所示,一个64位ID,除了最左边的符号位不用(固定为0,以保证生成的ID都是正数),还剩余63位可用. 下面的代码与 ...

  5. selenium + phantomjs 爬取落网音乐

    题记: 作为一个业余程序猿,最大的爱好就是电影和音乐了,听音乐当然要来点有档次的.落网的音乐的逼格有点高,一听听了10年.学习python一久了,于是想用python技术把落网的音乐爬下来随便听. 目 ...

  6. 可提高工作效率的 PL/SQL Developer 设置

    1.将Window List 列表展示出来并保存当前布局 ①Tools-->Windows List (展示窗口列表) ②Window-->Save Layout (保存当前布局) 2.设 ...

  7. jquery 中post 、get的同步问题

    jquery 中post .get的同步问题 解决方法1: 在全局设置: $.ajaxSetup({ async : false }); 然后再使用post或get方法 $.get("reg ...

  8. OpenLayers 3 基础知识(一)

    OpenLayers 是一个专为Web GIS 客户端开发提供的JavaScript 类库包,用于实现标准格式发布的地图数据访问. 要在你的网页中使用OpenLayers(现用版本:v3.19,1), ...

  9. 学习总结——Selenium元素定位

    读一本好书,不能读读就算了,做一下总结,变成自己的,以备查阅. 1.         driver.findElement(By.id(<element ID>)) ID是独一无二的,使用 ...

  10. 配置web项目时页面报错java.lang.NoClassDefFoundError: Tag

    把tomcat:common\lib 下的servlet-api.jar 和jsp-api.jar  cp到项目的web-inf 的lib包里 ,重启项目即可