码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Matlab面向对象的编程-类使用


     问题:

       在matlab中为完成某一个功能算法开发时,在不断的完善过程中,随着编写的函数增多,对函数的管理变得困难,尤其是在各个函数的数据传递时,因此考虑到面向对象的编程方式。

    面向过程程序设计 -Procedure-Oriented Programming-POP:

        将一个庞大的软件系统分成很多编程子任务、子模块,各模块由顺序、分支、循环等基本结构组成,每个模块由子函数实现。

    基本特点1)按照层次结构组织模块 2)每个模块只有一个入口和一个出口 3)代码和数据分离,"程序=数据结构+算法”

         基本的编程思路:将问题分解为多个功能模块,再依据功能模块设计存储数据的数据结构,编写函数(过程)对该数据进行操作。程序由许多函数组成。

        突出特点:数据和处理数据的过程分离

    面向过程的程序设计语言:C语言

       存在问题:

           程序维护性差,由于数据和过程分离,改变数据结构则相应的处理函数需要随之修改

    面向对象程序设计-Object Orient Programming--OOP:

         “每个事物都可以通过两个方面来刻画:描述事物状态的数据和描述事物行为的函数,应该把它们结合成一个整体,代表一个客观事物,这个整体就是对象”

       降低软件开发复杂度、提高软件开发效率、能够开发出可靠性高、可重用和易维护的软件,实现软件工程的3个主要目标:重用性、灵活性、扩展性。包括对象、类、继承、多态、消息。

        特点:

           未经允许不能修改对象数据、对象之间传递消息并通过特定的函数进行数据访问

    面向对象的程序设计语言:C++、C#等

    存在问题:

         程序的开销变高

     简单的理解:"面向过程的程序将数据传递给函数,函数对数据执行必要的操作。面向对象的软件将数据和操作封装在各个对象中,这些对象通过各自的接口进行交互"

    关于类和对象的区别:

      类和对象是抽象和具体的关系、类是在对象之上的抽象。理解为类是对对象的概括、归纳。

    一、创建简单的类并创建函数初始化:

    1.1类的属性及方法定义:

    classdef--end  所有类组件的定义
    properties --end 定义属性,默认值赋值、属性名称声明
    methods--end 定义方法
    1. classdef Class_RR
    2. properties
    3. RR=0;
    4. end
    5. methods
    6. %方法定义的方式1
    7. % function obj = ClassName(arg1,...)
    8. % obj.PropertyName = arg1;
    9. % ...
    10. % end
    11. %方法定义的方式2
    12. %初始化函数
    13. function obj=InitialMethod(obj,arg1)
    14. obj.RR=zeros(arg1,1);
    15. end
    16. end
    17. end

    1.2对象的创建及初始化:

    1. global RR_Var;
    2. RR_Var=Class_RR;%创建对象
    3. RR_Var=RR_Var.InitialMethod(10);%对类属性初始化

    1.3类成员访问方式:

    RR_Var.RR(i)=20;

    参考:

    【1】 C++面向对象程序设计

     【2】matlab中定义类、面向对象编程_沈子恒的博客-CSDN博客_matlab创建类

     【3】 什么是对象?什么是类?类与对象有什么关系?_孔小康的博客-CSDN博客_什么是对象

     【4】m-Define Class Methods and Functions

  • 相关阅读:
    通俗易懂的Docker (一篇文章就让你玩转)
    微商助理 防伪防窜货溯源代理授权查询系统源码
    [附源码]SSM计算机毕业设计疫情期间物资分派管理系统JAVA
    ChatGPT专业术语及有效使用方法概述
    【SWH】陆地生态系统蒸散模拟理论、蒸散估算、站点及区域尺度模拟
    2.vscode 配置python开发环境
    基于leetcode的算法训练:Day3
    282_WEB_对于注册、数据data_callback中进行处理的理解
    【Hive】建表时的存储格式
    【前端开发】JS Vue React中的通用递归函数
  • 原文地址:https://blog.csdn.net/heda3/article/details/128165992
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号