到底什么是面向对象。

简介: 到底什么是面向对象。

一:面向对象基础概念

1:什么是对象

       概念:

               对象是OO(Object Oriented)程序的构建模块。使用OO技术实际上是多个对象的集合。每个对象由数据和行为构成。    

      分类:

       对象数据,也就是对象属性,属性中包含了能够区分不同对象的信息。对象的行为,就是对象可以做什么,也就是方法。对象可以做的行为包含在方法中,通过发送消息来进行方法调用。消息:对象之间的通信机制。当对象A在调用对象B时,就是对象A再给对象B发送消息。


       对象使用:使用对象时,对象不需要公开它的所有属性和行为。对象只应该公开其他对象与之交互所必须的接口。

2:什么是类

        概念:类是对象的蓝图。实例化一个对象时,就是使用一个类作为构建这个对象的基础。 类是对象的模板。


       类和对象关系:类和对象的关系,很类似与鸡和蛋的关系。无法离开对象去描述类,描述类又不能不用到对象这个词。但是最终的结果应当是先有类,如果没有类,对象就无法被实例化。必须在创建对象之前先设计类。


3:封装和数据隐藏

       概念:封装定义为对象同时包含属性和方法。数据隐藏是封装的一个重要部分。


       接口:接口定义了对象间通信的基本途径。每个类设计都要指定接口来正确地实现对象的实例化和操作。对象提供的行为必须通过使用接口发送的消息来调用。在大多数的OO语言中,都将接口中的方法指定为Public。


       私有数据:要实现数据隐藏,所有的属性都应当声明为private。属性不是接口的一部分。属性被设置成Public会破坏数据隐藏的概念。


4:继承

       概念:继承允许类继承另一个类的属性和方法。反过来说抽取不同的类之间的共性,形成父类。例如你有一个Dog类和一个Cat类。两个类都有一个属性表示眼睛的颜色。在OO设计中这些共性就可以上移到一个Mammal类。Dog类和Cat类都继承与Mammal类。这里Dog类有两两个属性分别是:


       自己特有的属性:barkFrequency


       继承父类的属性:eyeColor


同样的方法也是两个


       自己特有的方法:bark


       继承父类的方法:getEyeColor


当我们进行Dog或者Cat类的实例化时,它不仅仅包含该类本身的所有内容,还包括从父类继承的所有内容。


5:多态

       概念:对同一条消息会产生不同的响应。在继承的层次中,所有子类都从超类继承接口,但是每一个子类都是一个独立的实体,同样是叫的方法,Dog类和Cat类效果就截然不同。


6:组合

        概念:组合和继承是两种可以根据原有的类形成新类的方式。组合是通过其他对象来构建新的对象。


     



目录
相关文章
|
Web App开发 前端开发 测试技术
如何测试Web网页的兼容性测试?
如何测试Web网页的兼容性测试?
774 3
|
存储 缓存 Linux
xv6(9) 文件系统理论部分
文件系统理论部分
245 0
【Leetcode -234.回文链表 -160.相交链表】
【Leetcode -234.回文链表 -160.相交链表】
68 0
|
存储 Kubernetes Cloud Native
Kubernetes vs OpenShift浅析
古语有云:“知彼知己,百战不殆。不知彼而知己,一胜一负。不知彼,不知己,每战必殆。” 这句话同样也适用于技术体系。无论我们在落地,还是在学习、实践某一项技术,对提供相同功能的体系框架的对比学习,可以使得我们能够快速、全面地去拥抱其生态。
641 0
|
存储 C语言
扫雷---C语言
扫雷---C语言
204 0
|
机器学习/深度学习 人工智能 数据可视化
AAAI 2022 | 传统GAN修改后可解释,并保证卷积核可解释性和生成图像真实性
AAAI 2022 | 传统GAN修改后可解释,并保证卷积核可解释性和生成图像真实性
212 0
|
Java Android开发 C++
Android C++ 系列:JNI 数组操作
在 Android JNI 基础知识篇提到了 Java 数组类型对应的 JNI 数组类型。比如,Java int 数组对应了 jintArray,boolean 数组对应了 jbooleanArray。
256 0
|
缓存 算法 计算机视觉
项目实战:Qt+OpenCV大家来找茬(Qt抓图,穿透应用,识别左右图区别,框选区别,微调位置)
项目实战:Qt+OpenCV大家来找茬(Qt抓图,穿透应用,识别左右图区别,框选区别,微调位置)
项目实战:Qt+OpenCV大家来找茬(Qt抓图,穿透应用,识别左右图区别,框选区别,微调位置)
|
监控 供应链 搜索推荐
案例酷丨欧诗漫:日化行业与工业互联网的珠联璧合
日化行业是市场竞争最为激烈的行业之一,面对消费者和市场不断升级的要求,如何灵活应对数字经济时代的挑战和变化?欧诗漫携手阿里巴巴,利用区块链技术,通过建设工业互联网日化行业标识解析系统,在产品质量控制溯源、生产协同、渠道营销等方面做出全方位的提升。
案例酷丨欧诗漫:日化行业与工业互联网的珠联璧合
|
机器学习/深度学习 人工智能 算法
Advanced Sci | 打破生成式深度学习限制:低量数据下的“one-shot”药设计法
Advanced Sci | 打破生成式深度学习限制:低量数据下的“one-shot”药设计法
212 0
Advanced Sci | 打破生成式深度学习限制:低量数据下的“one-shot”药设计法