面向对象基本思想概述

2023-11-16

面向对象的基本思想
  面向对象是一种新兴的程序设计方法,或者是一种新的程序设计规范(paradigm),其基本思想是使用对象、类、继承、封装、消息等基本概念来进行程序设计。从现实世界中客观存在的事物(即对象)出发来构造软件系统,并且在系统构造中尽可能运用人类的自然思维方式。开发一个软件是为了解决某些问题,这些问题所涉及的业务范围称作该软件的问题域。其应用领域不仅仅是软件,还有计算机体系结构和人工智能等。
1. 对象的基本概念
  对象是系统中用来描述客观事物的一个实体,它是构成系统的一个基本单位。一个对象由一组属性和对这组属性进行操作的一组服务组成。从更抽象的角度来说,对象是问题域或实现域中某些事物的一个抽象,它反映该事物在系统中需要保存的信息和发挥的作用;它是一组属性和有权对这些属性进行操作的一组服务的封装体。客观世界是由对象和对象之间的联系组成的。
  主动对象是一组属性和一组服务的封装体,其中至少有一个服务不需要接收消息就能主动执行(称作主动服务)。
2. 类的基本概念
  把众多的事物归纳、划分成一些类是人类在认识客观世界时经常采用的思维方法。分类的原则是抽象。类是具有相同属性和服务的一组对象的集合,它为属于该类的所有对象提供了统一的抽象描述,其内部包括属性和服务两个主要部分。在面向对象的编程语言中,类是一个独立的程序单位,它应该有一个类名并包括属性说明和服务说明两个主要部分。类与对象的关系就如模具和铸件的关系,类的实例化结果就是对象,而对一类对象的抽象就是类。
3. 面向对象的基本特征
 1.封装性
  封装性就是把对象的属性和服务结合成一个独立的相同单位,并尽可能隐蔽对象的内部细节,包含两个含义:

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

面向对象基本思想概述 的相关文章

  • http深入

    首部字段 包含请求和响应的各种条件和属性的各类首部 一般有4种首部 分别是 通用首部 请求首部 响应首部和实体首部 一 http通用首部 1 1 Cache Control字段 1 1 1 表示是否能缓存的指令 public Cache C
  • 小米iot业务_小米,大时代下的潜行者

    11月27日 小米发布了2019年第三季度的财务业绩 报告期内 小米收入达到537亿人民币 同比增长5 5 这是小米单季度的营收新高 相比收入 盈利能力的提高是小米财报最大的亮点 2019年第三季度 经调整后净利润为35亿元 同比增长20
  • Python代码制作2020“恐龙跳一跳“小游戏

    开发工具 Python版本 3 6 4 相关模块 pygame模块 以及一些Python自带的模块 相关文件 欢迎与我交流 环境搭建 安装Python并添加到环境变量 pip安装需要的相关模块即可 原理介绍 游戏规则简介 玩家通过空格键控制
  • springcloud入门基础搭建之hystrix

    目录 1 工程目录 2 单独使用hystrix 2 1引入依赖 2 2主启动添加 EnableHystrix 2 3在需要进行错误降级的方法上添加 HystrixCommand 2 4测试 3 整合feign和hystrix 3 1依赖 3
  • 如何搭建测试平台体系

    一个健康的测试平台体系 对测试人员的职责分工 协作模式会有不同的要求 测试平台核心的职责是完成高质量的交付已满足业务需求 测试活动包括单元测试 集成测试 接口测试 性能测试等 都是通过这些测试手段 协同整个测试平台来完成高质量交付的管理工作
  • Token的详细说明,看这一篇就够了

    文章目录 1 基于Token 的身份验证方法 2 JWT 2 1 Header 2 2 Payload 2 3 signatrue 3 Web安全 对于 Token 在很多大型网站中都有所应用 比如 Facebook Twitter Goo
  • C#编码规范-使用StyleCop进行代码格式检查

    前言 但是在项目开发的过程中 如果只是验证命名规则 而没有统一程序排版 不同开发人员将产出不同的文件格式 这样的产出 虽然能够正常地提供项目功能 但缺会大幅降低了这份程序代码的可维护性与可读性 本篇文章介绍如何通过StyleCop这个工具
  • C++模板库STL——vector容器(下)

    上篇介绍了vector的基本使用 本贴将介绍一些常用的函数与方法 帮助各位更加灵活的使用vector容器 include
  • 2021-12-21 《聪明的投资者》学习笔记-17.四个非常有启发的案例--失败案例

    摘自 聪明的投资者 The Intelligent Investor 第4版 本杰明 格雷厄姆 第17章 四个非常有启发的案例 失败案例 宾州中央铁路公司的案例 利润不合理 财务实力欠佳 Ling Temco Vought公司 举债扩张 粗
  • 网络知识点------SBC和BSC的定义

    数通知识点学习 2021 7 1 2021 12 31号我就职于浙江大华技术股份有限公司 担任嵌入式软件工程师 2022 1 4我入职中兴通讯 担任数通工程师 从物联网行业跨到通讯行业 有遗憾 有悲伤 也有快乐 希望以后还能继续通过博客记录
  • Qt 查看Qt助手的方法

    为了方便大家自学 在这里提供一种查看Qt助手的方法 1 打开软件点击帮助 在这里可以搜索关键词 2 假设搜索的是QToolBar 3 搜索的全是英文 这时可以点击 4 此时会跳到网页版Qt助手 5 使用的是 Microsoft Edge 浏
  • centos 安装java11

    直接执行 yum list grep java 11 输出结果如下 java 11 openjdk i686 1 11 0 16 0 8 1 el7 9 updates java 11 openjdk x86 64 1 11 0 16 0
  • JavaWeb——JavaWeb核心之Servlet

    一 Servlet简介 1 什么是Servlet Servlet 运行在服务端的Java小程序 是sun公司提供一套规范 接口 用来处理客户端请求 响应给浏览器的动态资源 但servlet的实质就是java代码 通过java的API 动态的
  • Python3-定时任务的四种实现方式

    最近做一个小程序开发任务 主要负责后台部分开发 根据项目需求 需要实现三个定时任务 定时更新微信token 需要2小时更新一次 商品定时上线 定时检测后台服务是否存活 使用Python去实现这三个任务 这里需要使用定时相关知识点 Pytho
  • 如何回答「你的优势和劣势是什么」?【面试核心问题6】

    导读 优势和劣势也是面试中的常问问题 求职者应该有所准备 准备好自己的3个优势和3个劣势 对于优势来说 最好是结合职位要求 或是产品经理的基本能力 谈一些自己具备的和职位相关的优势 并且能拿出证据 经历来证明它 举例 具备良好的沟通能力和组
  • 手机应用软件卸载【adb】

    解决了想卸载 厂商又不让卸载 例 miui广告 卸载小爱等 adb 工具 点击下载 官方下载 安全 附自己的卸载包 adb exe shell pm uninstall user 0 com miui systemAdSolution ad
  • 双系统 Ubuntu grub启动项中 没有Windows的解决

    目标 从ubuntu的grub进入win10系统 实施 以下操作在Ubuntu系统中进行 终端依次执行下面命令 sudo grub install dev sda sudo chmod x etc grub d 30 os prober s
  • 导致项目失败常见的原因有哪些

    一 规划工作做得不细 或缺少灵活性 项目计划始终是项目开始前的热点讨论话题 但是在实际项目进行中仍会出现问题 因此在做好计划之后 在项目实施中项目经理还需要根据项目实际情况做适当的调整 项目经理可以通过进度猫甘特图制作项目计划 调整增加项目
  • 另类的唯品会和得物比价

    目前得物h5和小程序防爬弄得采集数据很费劲 另辟蹊径做了一款通过模拟器和商家后台方式采集数据的方式 目前实现了跟唯品会的比价 运行界面如下 输入品牌名称 点击 开始 表格中左边依次显示唯品会采集的数据 右边会根据采集模式的不同 从安卓模拟器
  • inux字符驱动之read、write部分

    本期主题 linux字符驱动之read write部分 往期链接 linux设备驱动中的并发 linux设备驱动中的编译乱序和执行乱序 linux设备驱动之内核模块 linux字符驱动 linux字符驱动之ioctl部分 linux字符驱动

随机推荐

  • 把手伸向大数据平台的云原生,是如何将大数据平台迁移至K8s上的?

    我们正身处数据大爆炸的时代 据IDC数据显示 仅在2022年 人类就将创造超过97ZB的数据 要知道截至2012年 人类生产的所有印刷材料的数据量为200PB 仅为2022年一年所创造数据量的50万分之一 据预测 中国数据量规模将从2022
  • TMS运输管理系统,对车辆管理、物流运输、效率提升有哪些优势?

    TMS Transport Management System 运输管理系统 其主要功能是对物流中的运输环节进行管理 此系统适用于运输公司 各企业下面的运输队等 系统对车辆 驾驶员 线路 运输方式等进行全面管理 通过系统调度管理 报表分析统
  • TypeScript学习笔记(三) - 方法

    本篇将介绍在TypeScript里如何定义和使用方法 一 方法标准声明和使用 1 方法声明 2 function func x number y number number 3 return x y 4 在TypeScript里 方法声明可
  • INSTALL_FAILED_INVALID_APK: /data/app/vmdl1735842778.tmp/11_app-debug signatures are inconsistent

    坑 背景 这两天无聊想整合一下SDK和Gradle里的东西 然后手贱 整出来一个错误 安装apk报错 INSTALL FAILED INVALID APK data app vmdl1735842778 tmp 11 app debug s
  • 按指定条件从C++11 map中删除元素

    问题 无法使用remove if配合map容器的erase操作按指定条件从map容器删除元素 C 11 解决方案 可以使用一下函数实现这个需求 template
  • pytorchnp.transpose(npimg, (1, 2, 0))

    最近看pytorch的一个代码 结果中间有一句还是看不太懂 最后过了一些阵子才看懂 在此Mark一下 1 代码如下 def imshow img text should save False npimg img numpy 将torch F
  • css实现图片旋转

    一 css实现图片旋转90度 icon moz transform rotate 90deg webkit transform rotate 90deg 二 水平翻转 icon color f64e78 font size 20px dis
  • 轨迹数据

    如何通过轨迹相似性度量方法 发现新冠易感人群 轨迹作为一种时空数据 指的是某物体在空间中的移动路径 通常表示为GPS点的序列 例如tr
  • 计算机的默认登录账户,win10如何设置默认登录账户_win10电脑设置默认账户登录的两种方法...

    我们在使用电脑时为了保护电脑资料的安全 一般会进行密码登录设置 但是有使用win1064位正式版系统的用户想要在使用电脑的时候自己的账户可以进行自动登录 而其他的账户保持原来的登录方式 那win10如何设置默认登录账户呢 下面小编就来为大家
  • python中__name__和__main__

    在学习python的时候 会经常看到这样的一句话 if name main 那么这句话是什么意思呢 首先要解释一下python文件的两种使用方式 1 直接运行 就是直接运行 py文件 2 模块导入 就是被当成模块导入到其他python文件中
  • ssh 远程登陆指定端口

    ssh 到指定端口 ssh p xx user ip xx 为 端口号 user为用户名 ip为要登陆的ip SSH 原理及远程登录 http www ruanyifeng com blog 2011 12 ssh remote login
  • 基于java的个人博客系统的设计与实现

    源码下载 https wwa lanzous com iH3N7mjya2h 更多源码 http byamd xyz 文件目录 运行步骤 导入数据库 导入idea 修改数据库密码 效果
  • three.js物体纹理及其常用属性介绍

    一 Three中的纹理和材质介绍 THREE中的纹理和材质是用来渲染3D场景中的物体表面的 纹理贴图定义物体表面的颜色和外观 而材质则定义物体表面如何反射光线 纹理可以使用多种类型的图像文件 包括JPEG PNG GIF等 纹理可以是简单的
  • Python运维开发工程师养成记(python continue语句)

    图示 案例 下节分享python pass语句 链接 https ke qq com course 4300856 tuin d8aedf68
  • python常见相关组件汇总(个人学习)

    目录 1 生成6位数字随机验证码 2 md5加密 3 生成唯一token 4 发送手机验证码 实现逻辑 5 生成二维码 6 微信群发 7 微信自动回复 8 提取Django中model中的字段名变成字典 列表 9 数据库中给表创建数据 10
  • 11、Seata AT+SpringCloud+MyBatisPlus+Nacos进行分布式事务操作

    具体请看 http blog shangsw com articles 2020 03 28 1585382453622 html
  • Unity通用框架搭建(八)—— 消息事件封装

    在游戏开发中 消息事件通过委托实现 实际开发中 经常会遇到界面之间 玩家之间的相互通信 本文实现的消息事件封装采用的时监听和分发机制 它主要运用在逻辑判断 减少程序之间的耦合度 而且使用起来非常方便 监听服务器消息也可以运用事件监听机制 收
  • 怎么在matlab里分析房价,MATLAB线性回归算法浅析赤(chǐ)峰房价

    每日一句 房子不是你想买想买就能买 基础介绍 线性回归算法是处理回归问题的常用方法 下面就线性回归算法来做一个简单的模型 通过走势模拟房子售价 通过数据样本的基本绘图 可以知道某个现象是不是一个线性的分布过程 并且按一次线性方程分布 那么就
  • 关于Vue

    vue js 与vue runtime xxx js的区别 1 vue js是完整版的Vue 包含 核心功能 模板解析器 2 vue runtihe xxx js是运行版的Vue 只包含 核心功能 没有模板解析器 因为vue runtime
  • 面向对象基本思想概述

    面向对象的基本思想 面向对象是一种新兴的程序设计方法 或者是一种新的程序设计规范 paradigm 其基本思想是使用对象 类 继承 封装 消息等基本概念来进行程序设计 从现实世界中客观存在的事物 即对象 出发来构造软件系统 并且在系统构造中