OO面向对象再认识

Object

Objects in programming languages often embody both attributes and behaviors.

Attributes在不同场合又称作

Properties
Fields
Data
Instance variables
State

Behaviors在不同场合又称作

Methods
Functions
Procedures
Operations
Actions
Member functions

了解一个东西的属性和行为,就表示对该东西有了认识和概念(Concepts)。尽管有些东西并不存在,但只要对其有概念,就是对象,如古代神话中的龙、凤凰、月中白兔、嫦娥等都是我们熟悉的对象。但对于没有听过嫦娥奔月故事的外国人来说,嫦娥并不是对象。

在“面向对象编程”(Object-Oriented Programming,简称OOP)观念中,事件所涉及的东西是对象,对象的内部状态变化是事件。

传统上,数据与函数分而治之。“函数”代表计算机的动作,其动作的目的是“处理”数据。。数据是被动的,函数是主动的。若软件想满足人们的生活习惯,符合自然界的规则,应修正传统的观点,将数据和函数化零为整,合
为一体成为如今所说的“对象”。

In many object-oriented programming languages, each object belongs to a specific class, and each class defines a data type. So, in a sense, you could say that each object is an instance of a particular data type.

消息的作用:刺激对象,令其改变内部状态。
消息的目的:要求对象提供服务。例如,在火车站将钱币投入售票机时,对售票机个体而言,用户的投币
或按键都可以认为是消息的到来,消息会改变售票机的内部状态—金额逐渐增加。投足钱币时,售票机提供服务—送出火车票。

“事件驱动”或“消息驱动”(Message Driven)。所以在OOP 观念中,函数的任务:运行对象对消息的反应过程,即表达对象的行为。函数处于被动位置,只有收到消息,受外界刺激时,对象才会呼叫函数对消息做出反应。
目前大部分软件是事件驱动的,而写这类软件时,就需要应用OOP 的观念和方法。

铁打的营盘流水的兵

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/575394.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

ai论文生成神器——快速完成论文任务!

在这个AI写作的时代,大家都在使用AI写作作为论文辅写工具。用过ChatGPT写论文的小伙伴应该都知道,ChatGPT是通过对话或提问形式获取的AI生成内容,提供不了专业的论文写作标准,例如自动生成封面、目录、摘要、参考文献等部分。而专…

面试集中营—ElasticSearch架构篇

一、为什么用ElasticSearch? 1、支持多种数据类型。它可以处理非结构化、数值和地理信息等多种类型的数据; 2、简单的RESTful API。ES提供了一个简单易用的RESTful API,使得它可以从任何编程语言中调用,降低了学习的曲线。 3、近实…

德语口语学习的8种练习方法

简洁明了一点,方便大家理解,我总结了以下8点: 1.模拟对话: 创造实际生活场景,例如购物、问路、餐厅点餐等,并自言自语或者与伙伴一起模拟这些对话。 参加角色扮演活动,通过不同情境练习口语。…

Camtasia2024破解版激活许可证秘钥永久免费使用

Camtasia Studio是一款专业的屏幕录像和视频编辑软件套装,它提供了从屏幕录制到视频编辑、菜单制作、视频播放等一系列功能。以下是对Camtasia Studio及其2024年最新版本的详细介绍。 一、Camtasia Studio概述 Camtasia Studio是一款集屏幕录制、视频剪辑、菜单制…

java:SpringBoot入门

Spring 提供若干子项目,每个项目用于完成特定功能 Spring Boot 可以简化配置并且快速开发 SpringBootWeb快速入门 创建Springboot模块并使用Springweb依赖 在类上添加注解 RestController可以将字符串自动转成json返回数据给页面 再在方法上添加注解 RequestMapping(&…

深入理解GTK、Qt、AWTK:跨平台GUI框架对比

目录标题 GTK特性:优点:缺点: Qt特性:优点:缺点: AWTK特性:优点:缺点: 适用场景 在当今的软件开发领域,图形用户界面(GUI)的开发是不可…

Log4j日志框架多种日志级别

Log4j日志框架定义了多种日志级别,这些级别按照优先级从高到低排列如下: OFF:这是最高等级的日志级别,用于关闭所有日志记录。FATAL:指出每个严重的错误事件将会导致应用程序的退出。ERROR:表明发生错误事…

python之excel加工处理小案例一则

一、工具用途 工作中,需要对各类excel进行加工处理,当表和字段比较多时,关联条件又有多个,每次通过execl的vlookup之类的关联公式手工可以解决工作需求,但一般耗时较长,且人工统计匹配也存在出错的情况。 …

官方售价299元的自媒体博客资讯类wordpress主题

官方售价299元的自媒体博客资讯类wordpress主题。 自媒体一号是一款由主题巴巴团队原创设计开发的WordPress主题,这款主题页面布局简约大气,设计细节精美考究,内置功能非常强大,通过后台的主题设置面板,你可以轻松自定…

kaggle不显示中文字体

链接:【kaggle】在matplotlib中使用中文字体_kaggle使用中文字体打印图片-CSDN博客 下载字体链接 完整代码: import matplotlib.pyplot as plt import matplotlib.font_manager as font_managerdef plot_df(df, x, y, title"", xlabelDate,…

【Qt常用控件】—— 多元素控件

目录 1.1 List Widget 1.2 Table Widget 1.3 Tree Widget 1.4 小结 Qt 中提供的多元素控件有: QListWidget QListView QTableWidget QTableView QTreeWidget QTreeView xxWidget 和 xxView 之间的区别 以 QTableWidget 和 QTableView 为例: QTableView 是基于…

快速构建Spring boot项目

1、Idea里新建项目 2、创建HelloController 3、运行 4、开发环境热部署 pom.xml 查看目前已有的依赖 配置properties 设置 ctrlshiftalt/ 新版本的compiler.automake.allow.when.app.running已经不在registry里面了,在settings里面的Advanced settings里面Allow au…

【R语言简介】

🌈个人主页: 程序员不想敲代码啊 🏆CSDN优质创作者,CSDN实力新星,CSDN博客专家 👍点赞⭐评论⭐收藏 🤝希望本文对您有所裨益,如有不足之处,欢迎在评论区提出指正,让我们共…

【LLVM】在Windows中配置LLVM开发环境

本文内容 0.动机1. 安装Visual Studio 20192 安装Python3已安装Python未安装Python 3. 配置Visual Studio4.安装LLVM获取源码将LLVM切换到我们的目标版本编译LLVM 0.动机 想着ubuntu用着别手,看看能不能在Windows中进行开发。于是就动手实践了下 Getting Started w…

Android Studio实现内容丰富的安卓养老平台

获取源码请点击文章末尾QQ名片联系,源码不免费,尊重创作,尊重劳动 158安卓养老 1.开发环境 后端用springboot框架,安卓的用android studio开发android stuido3.6 jak1.8 idea mysql tomcat 2.功能介绍 安卓端: 1.注册登…

Mockaroo - 在线生成测试用例利器

简介:Mockaroo 是一个无需安装的在线工具,用于生成大量的自定义测试数据。它支持多种数据格式,如JSON、CSV、SQL和Excel,并能模拟复杂的数据结构。 历史攻略: 测试用例:多条件下编写,懒人妙用…

How to solve matplotlib Chinese garbled characters in Ubuntu 22.04

conda create -n huizhou python3.8conda activate huizhouconda install numpy matplotlibpip install mplfontsmplfonts init# 导入必要的库 import numpy as np import matplotlib.pyplot as plt# 创建角度数组,从0到2π x np.linspace(0, 2 * np.pi, 100)# 计算…

微信小程序-------模板与配置

能够使用 WXML 模板语法渲染页面结构能够使用 WXSS 样式美化页面结构能够使用 app.json 对小程序进行全局性配置能够使用 page.json 对小程序页面进行个性化配置能够知道如何发起网络数据请求 一.WXML 模板语法 数据绑定 1. 数据绑定的基本原则 ① 在 data 中定义数据 ② 在…

架构师系列-消息中间件(11)- RocketMQ 进阶(5)-深入分析(2)

3. 文件刷盘机制 RocketMQ 的消息是存储在磁盘上的,这样做有两个优点: 保证断电后恢复 让存储的消息量超出内存的限制 RocketMQ 存储与读写是基于 JDK NIO 的内存映射机制,具体使用 MappedByteBuffer(基于 MappedByteBuffer 操…

通配符HTTPS安全证书

众多类型的SSL证书,要说适用或者说省钱肯定是通配符了,因为谁都想一本SSL证书包括了整条域名,而且也不用一条一条单独管理。 通配符HTTPS安全证书,其实就是通配符SSL证书,SSL证书主流CA的参数都一样,通配符…
最新文章