OO.A.D.P
OO/A/D/P
对象和类 三大特征
对象:
对象是面向对象语言的一个极为重要的特点,所有的面向对象语言都有对象的共性。
1. 职责(单一)
2. 属性(数据、可改变的)
3. 函数(行为、方法、业务算法)
总结:一个完整的对象是具有属性和行为以及它自身的职责。
一个完整的对象是具有属性和行为以及它自身的职责。
类:
任何对象都需要经过一个设计的阶段,通过设计,就可以很好的描述一个对象的内容,那么,设计的工作就是由类来完成。
因此,类专门设计和描述了同一类对象共有的特征
总结:通过类设计出来的对象就可以在计算机中的JVM执行。
对象之间的通信:
有时候,一个大的任务是需要很多个不同的对象协力来完成,这时某个对象会需要另外一个对象的职责功能来协助。
创建对象--->调用对象的方法-->返回结果。这个过程就是一次通信
封装:
隐藏内部的实现细节。
1.包具有封装的特性,控制类的访问。
2.类也具有封装的特性,控制成员(属性、行为)的访问。
3.行为本身也具有封装的特性,隐藏了功能的实现细节。
主要都是通过访问修饰符进行控制。
继承:
继承的前提条件是要有父类,才有继承。
继承的特点是提取子类的共性,避免重复。
重载和重写的特点:
1.重写
只能发生在父类和子类之间,方法名、返回值类型、参数个数和类型都必须相同,访问修饰符要大于或等于父类的级别。
当父类继承的方法不能满足当前的业务场景时,子类可以重写该方法。
2.重载
可以发生在父类和子类之间,也可以发生在本类当中。要求方法名相同,方法的参数个数和类型必须不同,对返回值和访问修饰符没有要求
多态:
多态同样是发生在父类和子类之间或者是接口与实现类之间。
“父类类型,子类对象。编译时看父类,运行时看子类”
不同的子类,在不同的业务场景中可以充当其父类的角色在运行,
看到的还是其父类的类型。
重写:属于运行时多态。(在运行时决定。如果子类发生了重写,那么将执行重写后的方法)
重载:属于编译时多态。(在编译时决定。在编译阶段就明确制定调用的是
OO.A.D.P的更多相关文章
- GLUT的简洁OO封装
毕业设计用到了OpenGL,由于不会用MFC和Win32API做窗口程序:自然选用了GLUT.GLUT很好用,就是每次写一堆Init,注册callback,觉得有点恶心,于是对他做了简单的OO封装.记 ...
- Atitit 基于sql编程语言的oo面向对象大规模应用解决方案attilax总结
Atitit 基于sql编程语言的oo面向对象大规模应用解决方案attilax总结 1. Sql语言应该得到更大的范围的应用,1 1.1. 在小型系统项目中,很适合存储过程写业务逻辑2 1.2. 大型 ...
- OO中,先有对象还是先有类?
就是问,在面向对象思想里,先有对象还是先有类,乍一看和先有鸡蛋还是先有鸡是一类问题,其实不然!这个问题,在lz考研复试的时候被面试官问过,一模一样,如今又在一个笔试题里看到了类似的题目,眨一下,有人会 ...
- OO方式下,ALV TREE和ALV GRID的不同之处
作为大部分报表程序的基础,ALV GRID差不多是每个ABAP开发者必须了解和掌握的内容,因此网上也不乏相关资料,而ALV TREE的应用相对较少,中文资料也就比较少见了.实际上,ALV TREE和A ...
- 从人类社会的角度看OO(独家视角)
引言 在OO的工作中,我们一定会涉及到类,抽象类和接口.那么类和抽象类以及接口到底扮演的什么角色? 本文主要是从人类社会的角度阐述类与抽象类以及接口的"社会"关系,从而让我们抛弃书 ...
- 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 ...
- lua下的简单OO实现
笔者学习了当前(文末各文献)lua下的各种OO实现方法.略作笔记. 也提出了一些自己的想法.主要还是记录供将来着之参考. 1.概述 首先[2]PIL第二版中给出了OO的基于table的实现方式 ...
- OO的五大原则是指SRP、OCP、LSP、DIP、ISP。
OO的高层原则,面向对象设计的基本原则 设计模式之六大原则--开闭原则(OCP) 设计模式之六大原则--迪米特法则(LoD,LKP) 设计模式之六大原则--接口隔离原则(ISP) 设计模式之六大原则- ...
- Atitit usbQb212 oo 面向对象封装的标准化与规范解决方案java c# php js
Atitit usbQb212 oo 面向对象封装的标准化与规范解决方案java c# php js 1.1. 封装性是面象对象编程中的三大特性之一 三个基本的特性:封装.继承与多态1 1.2. 魔 ...
随机推荐
- php extract 函数的妙用 数组键名为声明为变量,键值赋值为变量内容
extract 函数的妙用 数组键名为声明为变量,键值赋值为变量内容 它的主要作用是将数组展开,键名作为变量名,元素值为变量值,可以说为数组的操作提供了另外一个方便的工具
- VS里统计整个解决方案代码行数的方法
VS里统计整个解决方案代码行数,在查找里输入正则表达式:b*[^:b#/]+.*$.如下图所示: 结果如下图所示:
- mybatis传递参数到mapping.xml
第一种方案 ,通过序号传递 DAO层的函数方法 Public User selectUser(String name,String area); 对应的Mapper.xml <select id ...
- .NET 平台下的插件化开发内核(Rabbit Kernel)-转
什么是RabbitHub? RabbitHub 是专门针对 .NET 平台所设计.研发的一套相对完整的插件开发框架,它是由一个内核两大框架多个组件及一系列的开发时支持而构成. RabbitHub 架构 ...
- 用python脚本通过excel生成文件夹树结构
大概这样写标题是对的吧... 目标: 通过excel目录结构文档生成文件夹树结构. 也就是: 通过下面的excel
- [CF442A] Borya and Hanabi (暴力bitmask)
题目链接:http://codeforces.com/problemset/problem/442/A 题目大意:给你n张卡片,你知道这n张卡片都是什么,但是不知道他们的位置.你每次可以请求朋友指出一 ...
- Android单元测试与模拟测试详解
测试与基本规范 为什么需要测试? 为了稳定性,能够明确的了解是否正确的完成开发. 更加易于维护,能够在修改代码后保证功能不被破坏. 集成一些工具,规范开发规范,使得代码更加稳定( 如通过 phabri ...
- XXX esx.problem.syslog.nonpersistent.formatOnHost not found XXX
ESXi 主机的摘要选项卡报告以下错误:配置问题:XXX esx.problem.syslog.nonpersistent.formatOnHost 未找到 XXX (2101811) Sympt ...
- C#TreeView控件遍历文件夹下所有子文件夹以及文件
一直对递归的理解不深刻,有时候觉得很简单,可是用起来总会出错.这里需要在TreeView控件里显示一个文件夹下的所有目录以及文件,毫无意外的需要用到递归. 一开始,想到用递归写一个生成每一个节点(Tr ...
- 哆啦A梦 canvas
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...