OOP 概念的编程基础思想----我的感想
(The essential of OOP concept Thought)
Actually the philosofy of object oriented programming is very simple. What is an object actually? Do you know? Don't think it to complicated,keep it simple. I think you do know, yet you don't realize it when you are perfroming OO programming job. Or Who know you know.
Like in the nature, object is actual what we call "THING". A car is a thing, a bird is a thing, you are a thing too!!!! Don't forget. Object, the thing, is madeup by its parts/components, just like you have a head,a body, two hands and two legs and your tiny thing to make baby. Ha Ha Ha Ha. To be a thing, one has character/propery, has a mean to perform actions,right? Since you have your character and you can move to do some things right. So I think now you get to realize something I want to tell you.
So just like in the nature,object oriented programming(OOP)is all this about like in the nature. An object instant has its propery and its methods to perform jobs to be done.An object belong to some kind, this is so call CLASS. The class is like a kind of group of things with similar propery and methods.
Like in the nature, object,thing can multiplicate themselves. Like you can make babies with the woman you "love" right. Your baby has something in common with you,yet not quite the same, he/she has its own character/propery and he/she growup to be someone with its own behaviour right. So this come to the essential, the foundation of object oriented programming:
1. Inheritant
2. Incaptulation
3. Polymorphism
This is the beauty of Object Oriented Software Engineering,the simulation of the nature, the world we are living. The simplcity of it, and actually we all know about. But unfortunately many C++ and other OO programmers seem to forget some what it is actually very natural and simple!!!! They think in the terms of technique, the syntax, the construction of loop statement,the selection,the branching of code,the constructor, the destroyer, memories allocation,and all kind of tricks in order to get his/her program done.
This is stupib,wrong attitude to become an object oriented programmers. They simply forget the essential,the thought,the foundation of Object Oriented Engineering!!!! So my advice is, keep it simple yet perform it accordingly with correctness. Think and imagine like in the nature.
Just like thing happen and behave in the nature. Nothing secret,nothing complicated. Think like the way it happen in the nature. If a C++ or OO programmer doing his/her programming the way I tell you as above. It will become much and much easier to create even very advanced sophisticated software based on C++ or other OO programming language. This is the way,I think the proper way to perform ones OO programming job. The simplicity,the nature is the beauty!!!!
Bernardus160 于荷兰 2001-11-12
--------------------------------------------------------------------------------
Bernardus160 回复于:2001-11-15 07:46:45
OOP 概念的编程基础思想----我的感想
(The essential of OOP concept Thought)
事实上,面向对象(物体)编程的哲学是非常简单的。究竟什么是对象(物体)呢?你知道吗?不用(要)把它想的太过复杂,其实它很简单。我想你应该知道的,只是你在从事面向对象(物体)编程的工作还未意识到它,否则,天晓得你知道什么!
同自然界一样,对象(物体)就是那些被我们称为“东西”的东西。汽车是个东西,小鸟是个东西,你也一样是个东西!!!!这一点你可不能忘记哦(雨飞谓: 除非你自己承认自己不是东西。^v^嘿嘿~~)。对象(物体)这个东西,是由它的各个部分(被称为组件)组合而成,就好像你是有头,身体,双手,双腿,和你的那个生小孩的“小东西”(雨飞谓:俗称“”)一样。哈哈哈哈。作为一个对象(物体),当然要有自己的特性(被称为属性),还意味着会有动作的功能,不是吗?就像你有你的独特性格和你会以你的性格去做一些事情一样。我想现在你应该意识到我想对你说些什么了吧。
类比与自然界,面向对象(物体)编程同自然界几是完全相似的。一个对象(物体)实例有它自己的属性和完成他自己工作的方法。一个对象(物体)属于某种类型,它被称为CLASS(类)。类就像是具有相似属性和方法的一组事物(物体)。
形同自然界,对象(物体)具有繁殖与多种表现形式。就像你和你“爱”过的女人生的小贝贝一样,你的小贝贝会有一些和你相同的地方,但是也不完全一样,它还有他自己的个性特征(属性)和他自己的特有行为。所以所有这些才是面向对象(物体)编程的本质和基础:
1、继承(遗传性)
2、封装(涵存)
3、多态(一体多样化)
这就是与我们所生活的自然界非常相似的出色(美丽)的面向对象(物体)软件工程。事实上这个相似点地球人都知道的。但是不幸的是许多从事C++编程和其它面向对象(物体)语言编程的程序员们好像都忘记了这个实际上非常简单而自然的东西!!!!他们所想的是有限的技术,语法,循环、选择、分支结构的代码,构造,析构,内存分配,和各种各样为了他们完成代码的技巧。
作为面向对象(物体)的程序员们这种做法是相当愚蠢和错误的。他们完全忘记了面向对象(物体)软件工程的本质、思想和基础!!!!所以我想忠告大家,保持简单作法思想性的原则且在进行编程时相应地正确行事,以使自己能够从错误中纠正过来。一切以自然为样去思考,想象和行事。
就像自然界中的事物发生与演变一样,没有神秘的事物,也没有复杂的事物。对事物的思考就像它在自然界中发生那样想像演变就可以了。如果一个从事C++或者其他面向对象(物体)语言程序设计的程序员能够像我以上所说的那样去编制他们的程序,那么将会更加容易的去构建基于C++或者其他面向对象(物体)程序设计语言的高水平先进的软件,而且会做得更快更好。这只是一条路,一条我认为对从事面向对象程序设计工作比较合适的路。简单而自然是最好,最美丽的!!!!
分享到:
相关推荐
基于人工势场法的动态路径规划算法与曲线平滑处理——自定义地图、起点、目标点与障碍物,可与A*和RRT融合应对动态障碍物(仅供学习参考使用),基于人工势场法的 动态路径规划+曲线平滑处理 路径规划算法 地图好修改 自己研究编写的Matlab路径规划 可自行设置起始点,目标点,障碍物,自由更地图。 ——————————————————— 可以和A*和RRT融合 动态障碍物 预先声明:该程序为版权所述,仅供学习参考使用。 ,基于人工势场法的动态路径规划; 曲线平滑处理; 路径规划算法; 地图可修改; 自行设置起点与目标点; 障碍物设置; 与A*和RRT融合; 动态障碍物处理。,基于人工势场法的动态路径规划与曲线平滑处理系统——可自定义地图与障碍物
11 生产制造部门KPI指标(结合BSC)
内容概要:本文档详细介绍了一款轻量级任务管理系统的构建方法,采用了Python语言及其流行Web框架Flask来搭建应用程序。从初始化开发环境入手到部署基本的CRUD操作接口,并结合前端页面实现了简易UI,使得用户能够轻松地完成日常任务跟踪的需求。具体功能涵盖新任务添加、已有记录查询、更新状态以及删除条目四个核心部分。所有交互行为都由一组API端点驱动,通过访问指定URL即可执行相应的操作逻辑。此外,在数据持久化层面选择使用SQLite作为存储引擎,并提供了完整的建模语句以确保程序顺利运行。最后,还提及未来拓展方向——加入用户权限校验机制、增强安全检查以及优化外观风格等方面的改进措施。 适合人群:熟悉Linux命令行操作并对Web编程有一定了解的技术爱好者;打算深入理解全栈开发流程或者正在寻找入门级别练手机会的朋友。 使用场景及目标:旨在为开发者传授实际动手编写小型互联网产品的技巧,尤其适用于个人作业管理或者是小团队协作场景下的待办事项追踪工具开发练习。通过亲手搭建这样一个完整但不复杂的系统,可以帮助学习者加深对于前后端协同工作流程的理解,积累宝贵的实践经验。 其他说明:虽然当前实例仅涉及较为基础的功能模块,但在掌握了这套架构的基础上,读者完全可以依据自身业务特点灵活调整功能特性,满足更多个性化定制化需求。对于初学者来说,这是一个非常好的切入点,不仅有助于掌握Flask的基础用法和技术生态,还能培养解决具体问题的能力。
2025义务教育新课程标准生物(2022年版)必考试题含答案.docx
项目已获导师指导并通过的高分毕业设计项目,可作为课程设计和期末大作业,下载即用无需修改,项目完整确保可以运行。 包含:项目源码、数据库脚本、软件工具等,该项目可以作为毕设、课程设计使用,前后端代码都在里面。 该系统功能完善、界面美观、操作简单、功能齐全、管理便捷,具有很高的实际应用价值。 项目都经过严格调试,确保可以运行!可以放心下载 技术组成 语言:java 开发环境:idea 数据库:MySql8.0 部署环境:Tomcat(建议用 7.x 或者 8.x 版本),maven 数据库工具:navicat
基于随机森林算法RF的多输入单输出数据回归预测——含详细注释的代码与性能评估指标(决定系数R2、平均绝对误差MAE、平均相对误差MBE),基于随机森林算法RF的数据回归预测 多输入单输出 代码含详细注释,不负责 数据存入Excel,替方便,指标计算有决定系数R2,平均绝对误差MAE,平均相对误差MBE ,基于随机森林算法RF的数据回归预测; 多输入单输出; 详细注释; 存入Excel数据; 指标计算包括R2, MAE, MBE。,"基于随机森林算法的Excel数据回归预测:多输入单输出模型,含注释与误差指标"
Matlab领域上传的视频是由对应的完整代码运行得来的,完整代码皆可运行,亲测可用,适合小白; 1、从视频里可见完整代码的内容 主函数:main.m; 调用函数:其他m文件;无需运行 运行结果效果图; 2、代码运行版本 Matlab 2019b;若运行有误,根据提示修改;若不会,私信博主; 3、运行操作步骤 步骤一:将所有文件放到Matlab的当前文件夹中; 步骤二:双击打开main.m文件; 步骤三:点击运行,等程序运行完得到结果; 4、仿真咨询 如需其他服务,可私信博主; 4.1 博客或资源的完整代码提供 4.2 期刊或参考文献复现 4.3 Matlab程序定制 4.4 科研合作
电商团队绩效考核管理制度
酒店前厅客房主管晋升考核表
Python源码实例07如何生成高考填报志愿时的姓名区位码.zip
基于FPGA的QPSK调制解调技术实现:支持多种调制解调和信号处理方式解析,QPSK调制解调 FPGA 实现 verilog 语言 同样支持 FSM,MSK,DBPSK,DQPSK,8PSK,16QAM等信号调制解调FPGA开发 目前只支持用 vivado,modelsim实现,quartus 目前还没有做 调制分为串并转,差分编码,上采样(插值),成形滤波,载波相乘等 解调分为数字正交下变频,低通滤波,符号同步,载波同步,相差调整,硬判决,差分解码,并串转等 调制解码误码率为 0(无噪声条件下) ,核心关键词:QPSK调制解调; FPGA; Verilog; FSM; MSK; DBPSK; DQPSK; 8PSK; 16QAM; 串并转换; 差分编码; 上采样; 成形滤波; 载波相乘; 数字正交下变频; 低通滤波; 符号同步; 载波同步; 相差调整; 硬判决; 误码率。,"基于FPGA的QPSK及多信号调制解调器实现,支持多种格式用Verilog编程"
XX公司绩效考核责任书
四川特色旅游宣传网页模板(含完整源码) 【项目介绍】 一个精心设计的四川旅游宣传网页,完美展现巴蜀文化特色。项目采用原生HTML+CSS+JavaScript开发,代码结构清晰,注释详细,适合学习和二次开发。 【功能特点】 精美轮播图展示四川特色景点 背景音乐播放器(古风音乐衬托氛围) 特色视频播放功能 响应式布局设计 优雅的过渡动画效果 完整的导航菜单系统 CSS现代化样式设计 【适用人群】 Web前端开发学习者 需要网页模板的旅游从业者 对四川文化感兴趣的开发者 HTML5+CSS3学习者 【技术栈】 HTML5 CSS3(含动画效果) JavaScript 媒体播放技术 响应式设计 【使用说明】 下载后解压即可使用 源码注释完整,易于理解 可直接部署或二次开发
1、文件内容:aether-test-util-1.13.1-13.el7.rpm以及相关依赖 2、文件形式:tar.gz压缩包 3、安装指令: #Step1、解压 tar -zxvf /mnt/data/output/aether-test-util-1.13.1-13.el7.tar.gz #Step2、进入解压后的目录,执行安装 sudo rpm -ivh *.rpm 4、安装指导:私信博主,全程指导安装
房地产绩效考核方案
Configuration Nucleo-L476RG-Test STM32CubeMX 4.19.0 Date 02/18/2017 MCU STM32L476RGTx PERIPHERALS MODES FUNCTIONS PINS ADC1 Temperature Sensor Channel ADC1_TempSens_Input VP_ADC1_TempSens_Input SYS SysTick SYS_VS_Systick VP_SYS_VS_Systick USART1 Asynchronous USART1_RX PA10 USART1 Asynchronous USART1_TX PA9 USART2 Asynchronous USART2_RX PA3 USART2 Asynchronous USART2_TX PA2 Pin Nb PINs FUNCTIONs LABELs 2 PC13 GPIO_Input keyUser 16 PA2 USART2_TX 17 PA3 USART2_RX 21 PA5 GPIO_Output LD2 42
蚁群算法融合动态窗口法的路径规划算法研究:多动态障碍物的应用与挑战,蚁群算法融合动态窗口法路径规划算法 多动态障碍物 ,核心关键词:蚁群算法; 动态窗口法; 路径规划算法; 多动态障碍物; 融合。,"融合动态窗口与蚁群算法的路径规划技术应对多动态障碍物"
Python源码实例06之如何按照拼音顺序对中文汉字进行排序.zip
生产部员工KPI绩效考核指标(精)
体育馆弱电智能化系统深化设计方案.pptx