当前位置: 首页 > news >正文

面向对象编程基本概念

面向过程概述

面向过程编程,就是一种以过程为中心的编程思想。

分析出解决问题所需要的步骤,然后用函数把步骤一步一步实现。使用的时候一个一个依次调用。

面向对象编程

面向对象编程是一种对是世界理解和抽象的编程方法,把相关的数据和方法组织为一个整体来看待,从更高的层次来进行程序开发,更贴近实物的自然运行模式。

万物皆对象

用程序来抽象(形容)对象,用面向对象的思想来编程。

感受面向对象编程

飞行棋中的格子结构体、地图结构体、玩家结构体。

套路:用一种中文去形容一类对象,把一类对象的共同点提取出来,然后用程序语言把它翻译过来,带着对象的概念在程序中使用它们。

为什么要学习面向对象编程

提高代码复用率

提高开发效率

提高程序可拓展性

清晰的逻辑关系

如何学习面向对象

面向对象关键知识

类(class关键词)

面向对象三大特性

封装+继承+多态

面向对象七大原则

开闭原则、依赖倒转原则、里氏替换原则、单一职责原则、接口隔离原则、合成复用原则、迪米特法则。

重点中的重点

封装:用程序的语言来形容对象。

继承:复用封装对象的代码;儿子继承父亲,复用现成代码。

多态:同样行为的不同表现,儿子继承父亲的基因但是有不同的行为表现。

总结

面向对象编程思想就是:

万物皆对象

用程序来抽象(形容)对象

用面向对象的思想来编程。

相关文章:

  • opengauss安装postgis插件(Docker部署)
  • GPU性能相关的工具
  • 多态深度剖析
  • 算法day26
  • spring boot jwt 实现用户登录完整java
  • 如何用 JavaScript 下载文件
  • C#版 iText7——画发票PDF(完整)
  • 多种异构数据的分析设计方案1:使用策略模式+函数式接口
  • 微服务项目雪崩的解决思路
  • 【吉林大学Java程序设计】第7章:对象的容纳
  • 了解Java的LinkedBlockingQueue
  • 什么是模板字符串?
  • Mathf.Approximately
  • grafana连接influxdb2.x做数据大盘
  • 深入学习html的步骤
  • AHK 中 = 和 == 等比较运算符的用法
  • DOM的那些事
  • eclipse的离线汉化
  • Java IO学习笔记一
  • JavaScript 基本功--面试宝典
  • Java知识点总结(JDBC-连接步骤及CRUD)
  • 彻底搞懂浏览器Event-loop
  • 理解 C# 泛型接口中的协变与逆变(抗变)
  • 面试题:给你个id,去拿到name,多叉树遍历
  • 目录与文件属性:编写ls
  • 前端面试之CSS3新特性
  • 一、python与pycharm的安装
  • 用jQuery怎么做到前后端分离
  • Spring Batch JSON 支持
  • 浅谈sql中的in与not in,exists与not exists的区别
  • ​插件化DPI在商用WIFI中的价值
  • ​软考-高级-系统架构设计师教程(清华第2版)【第12章 信息系统架构设计理论与实践(P420~465)-思维导图】​
  • # Swust 12th acm 邀请赛# [ E ] 01 String [题解]
  • (52)只出现一次的数字III
  • (7)STL算法之交换赋值
  • (BAT向)Java岗常问高频面试汇总:MyBatis 微服务 Spring 分布式 MySQL等(1)
  • (一)Dubbo快速入门、介绍、使用
  • (转)总结使用Unity 3D优化游戏运行性能的经验
  • ***详解账号泄露:全球约1亿用户已泄露
  • **PyTorch月学习计划 - 第一周;第6-7天: 自动梯度(Autograd)**
  • .NET 4.0网络开发入门之旅-- 我在“网” 中央(下)
  • .Net Core缓存组件(MemoryCache)源码解析
  • .NET Framework杂记
  • .net 后台导出excel ,word
  • .Net下使用 Geb.Video.FFMPEG 操作视频文件
  • //TODO 注释的作用
  • @cacheable 是否缓存成功_Spring Cache缓存注解
  • @require_PUTNameError: name ‘require_PUT‘ is not defined 解决方法
  • [240621] Anthropic 发布了 Claude 3.5 Sonnet AI 助手 | Socket.IO 拒绝服务漏洞
  • [AIGC] SQL中的数据添加和操作:数据类型介绍
  • [codevs 2822] 爱在心中 【tarjan 算法】
  • [DL]深度学习_Feature Pyramid Network
  • [DP 训练] Longest Run on a Snowboard, UVa 10285
  • [HCTF 2018]WarmUp (代码审计)
  • [iOS]-UIKit