C++自学笔记 面向对象程序设计OOP(Object Oriented Programming)
什么是对象?
Objects = Attributes + Services
Data : The properties or status
Operations: the fuctions
C语言中定义的变量用来存储数据,所以它可以理解为是“对象”
“任意变量都是对象”
对象拥有自己的属性和服务;
比如一盏灯,它的亮度,冷暖等就是它的属性;而它能带来的服务就是照明,拥有接口 并且能够输入(电)输出(光);
比如一个杯子,它的杯身颜色,里面水的多少就是它的属性;而它的服务就是让你喝水,同样拥有接口(杯口),输能入(水)和输出(水)。

面向过程是针对一个问题或者一个场景,需要有些什么步骤完成;
面向对象是针对一个问题或者一个场景中存在什么对象(物体),这些对象有什么属性能接受什么能提供什么服务/做什么操作。
object-oriented 面向对象 专注对象 而不是操作过程;
类和对象:

类:对象的类别;
类定义了对象,对象是类的实例;
OOP Characteristics:

- 所有东西都是对象
- 一个程序就是一堆对象在通过发信息的方式相互告知要做什么操作(C语言源代码则是函数的集合)
- 每一个对象都有它自己的由其他对象组成的内存
- 每一个对象都有一个类型
- 所有特殊类型的对象都可以接受相同的信息(所有可以接受相同消息的对象都是同一特殊类型)
Interface:
一个对象拥有一个接口(拥有相同接口的对象是同一类型)
接口的功能:
- Communication (便于更换,交流、松散耦合--loose coupling)
- Protection (外面的接口保护里面的结构--hidden implementation)
oop 的三大原则:封装encapsulation,继承inheritance,多态polymorphic
C++自学笔记 面向对象程序设计OOP(Object Oriented Programming)的更多相关文章
- JS面向对象程序设计(OOP:Object Oriented Programming)
你是如何理解编程语言中的面向对象的? 我们研究JS和使用JS编程本身就是基于面向对象的思想来开发的,JS中的一切内容都可以统称为要研究的“对象”,我们按照功能特点把所有内容划分成“几个大类,还可以基于 ...
- 面对对象编程(OOP, Object Oriented Programming)及其三个基本特性
一千个读者,一千个哈姆雷特.对于面对对象编程,书上都会告诉我们它有三个基本特性,封装,继承,多态,但谈起对这三点的见解,又是仁者见仁智者见智,感觉还是得多去编程中体验把 . 面向对象编程(OOP, O ...
- 面向对象编程(Object Oriented Programming,OOP,面向对象程序设计)
一.概述 面向过程:根据业务逻辑从上到下写代码 函数式:将具有一些功能的代码封装到函数中,需要的时候调用即可 面向对象:对函数进行分类和封装,让开发更方便,更快捷 Java和C#只支持面型对象编程,, ...
- oop(Object Oriented Programming)
嗯,昨天忙了一天没来及发,过年啊,打扫啊,什么搽窗户啊,拖地啊,整理柜子啊,什么乱七八糟的都有,就是一个字,忙. 好了,废话也不多说,把自己学到的放上来吧.嗯,说什么好呢,就说原型链啊 原型对象 每个 ...
- Object Oriented Programming python
Object Oriented Programming python new concepts of the object oriented programming : class encapsula ...
- JavaScript: Constructor and Object Oriented Programming
Constructor : Grammar: object.constructor Example: Javascript code: 1 function obj1() { this.number ...
- python, 面向对象编程Object Oriented Programming(OOP)
把对象作为程序的基本单元,一个对象包含了数据和操作数据的函数. 面向过程的程序设计把计算机程序视为一系列的命令集合,即一组函数的顺序执行.为了简化程序设计,面向过程把函数继续切分为子函数,即把大块函数 ...
- 面向对象数据库(Object Oriented Databases)
前面说几句费话.如今正在从事面向对象数据库在国内的推广工作,假设有兴趣能够与我联系. 假设有不论什么问题能够私信我,也能够到我们站点上 面向对象数据库交流社区 来向我提问,我一定以最快的速度解答. 想 ...
- JavaScript高级程序设计学习笔记--面向对象程序设计
工厂模式 虽然Object构造函数或对象字面量都可以用来创建单个对象,但这些方式有个明显的缺点:使用同一个接口创建很多对象,会产生大量的重复代码.为解决这个问题,人们开始使用 工厂模式的一种变体. f ...
随机推荐
- javaweb 01: servlet前言
动力节点杜老师,javaweb最新课程的笔记,假期一直跟着bilibili上的课程在学,放在这里,方便复习 Servlet前言 关于系统架构 系统架构包括什么形式? C/S架构 B/S架构 C/S架构 ...
- CDH集群日常
1.交换内存告警 该告警通常就是使用了swap分区导致的,在生产环境中,如果服务器内存是256G:建议关闭swap分区,减少跟数据盘之间的交互: 2.修改swap阈值 任何:表示只要使用了swap分区 ...
- 2510-Druid监控功能的深入使用与配置-基于SpringBoot-完全使用java config的形式
环境 springboot 1.5.9.RELEASE + JDK1.8 配置步骤 分两步,1 配置数据源 2 配置监控 直接上代码 1 配置数据源 package com.company.proje ...
- Vue3:不常用的Composition API && Fragment、Teleport、Suspense && 与Vue2对比的一些变化
1 # 一.Vue3不常用的Composition API 2 # 1.shallowReactive与shallowRef 3 .shallowReactive: 只处理对象最外层属性的响应式(浅响 ...
- 3. 安装部署MGR集群 | 深入浅出MGR
GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源. 目录 1. 安装准备 2. 初始化MySQL Server 3. 初始化MGR第一个节点 4. 继续设置另外两个节点 5. ...
- SpringBoot(一、快速入门)
1.SpringBoot简介 Spring Boot 是由 Pivotal 团队提供的全新框架,其设计目的是用来简化新 Spring 应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置, ...
- 妙啊!纯 CSS 实现拼图游戏
本文,将向大家介绍一种将多个 CSS 技巧运用到极致的技巧,利用纯 CSS 实现拼图游戏. 本技巧源自于 Temani Afif 的 CodePen CSS Only Puzzle game.一款完全 ...
- Python自学笔记6-列表有哪些常用操作
列表是Python中最重要的数据类型,它使用的频率非常非常的高,最大程度的发挥Python的灵活性. 和字符串一样,列表的操作方法也有很多.如果说一头钻进去,可能会导致学习没有重点.在这篇文章当中,首 ...
- HDU 6222 Heron and His Triangle (pell 方程)
题面(本人翻译) A triangle is a Heron's triangle if it satisfies that the side lengths of it are consecutiv ...
- 第一章 kubernetes概述
一.Kubernetes概述 1.官网地址:https://kubernetes.io 2.GuiHub:https://github.com/kubernetes/kubernetes 3.又来:谷 ...