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 二维数组排序,多维数组排序

    对2维数组或者多维数组排序是常见的问题,在php中我们有个专门的多维数组排序函数,下面简单介绍下: array_multisort(array1,sorting order, sorting type ...

  2. [Linux编程] module_param()函数学习笔记

    在读TCP cubic源码中,遇到了module_param(),网上查到的资料如下: 在用户态下编程可以通过main()来传递命令行参数,而编写一个内核模块则可通过module_param()来传递 ...

  3. XE8 & IOS开发之免费证书真机调试:开发证书、AppID、开发授权profile的申请,附Debug真机调试演示(XCode7 Beta版或以上版本适用,有图有真相)

    网上能找到的关于Delphi XE系列的移动开发的相关文章甚少,本文尽量以详细的图文内容.傻瓜式的表达来告诉你想要的答案. 原创作品,请尊重作者劳动成果,转载请注明出处!!! 注意,苹果发布Xcode ...

  4. [翻译练习]密码学1小时入门 (Everything you need to know about cryptography in 1 hour)

    原文:http://www.daemonology.net/papers/crypto1hr.pdf   [密码学简介]   很多人都误用了密码学   一般可归为三类: 1. 愚蠢 比如Google ...

  5. oracle 单列索引 多列索引的性能测试

    清除oralce 缓存:alter system flush buffer_cache; 环境:oracle 10g . 400万条数据,频率5分钟一条 1.应用场景:  找出所有站点的最新一条数据. ...

  6. 线程Thread

    一.线程: 程序:保存在物理介质(光盘,软盘,硬盘)当中的代码片段 进程:一旦程序运行起来,就变成了操作系统当中的一个进程 线程:程序当中一条独立执行的线索 二.线程的五大状态 新生    就绪 运行 ...

  7. MS - 2 - 设计包含 min 函数的栈

    定义栈的数据结构,要求添加一个 min 函数,能够得到栈的最小元素. 要求函数 min.push 以及 pop 的时间复杂度都是 O(1). template<typename T> st ...

  8. Mysql字符类型比较

    一. binary和char比较: binary 字节为单位,char字符为单位,字符占几个字节取决于字符集 binary  比较规则基于字节值,char基于字符,即使是_bin的比较规则 范围都0- ...

  9. Maximo-删除应用程序

    执行如下SQL: delete from maxapps where app='<APPLICATION NAME>';delete from maxpresentation where  ...

  10. SDH误码仪MP1570A的自动化

    MP1570A是日本安立公司的用于SDH测试的误码仪. 1.MP1570A的自动化测试场景和原理 任意测试PC--(telnet)-->测试PC(Tcl Interrupt)-->SIG_ ...