Matlab AppDesigner编程教程第1章——面向对象编程

Matlab AppDesigner编程教程第1章——面向对象编程


前言

首先为什么我们学习Matlab AppDesigner要先学面向对象编程呢?

1直接原因:Matlab appdesigner是面向对象编程的,所有控件都是对象,如果不了解面向对象编程,编起来就会比较懵逼;

2重要原因:面向对象编程好处多多,可以让程序变得简洁易读易扩展易改等等,所以程序一大,面向对象编程就是必然的选择;


一、什么是面向对象编程

我们一开始写程序一般都是面向过程编程,我们把需要计算机做的事情一步一步按照过程叫计算机完成,这就叫面向过程编程;与之相对的就是面向对象编程。

那么到底什么是面向对象编程呢?

说白了就是把我们的程序要干的事情抽象出一个一个的类出来,类里面的个体就是对象;比如说我们编程与人有关那么,那么人就是类,人的个体比如小红、小明就是对象,各个对象作为人这个 “类“有他们共有的属性,比如身高体重等,作为对象个体他们又有属性上的差异,比如身高差异,体重差异等等;类还有另一个重要特点就是还具有方法或者叫操作,作为人这个“类”,他可以有很多方法比如会吃饭睡觉等等,根据编程需要我们可以任意添加。

讲到这里你可能还是不明白,这些在程序里怎么体现呢?下面用一个著名的五子棋例子来说明,你就能明白面向对象的精妙所在。

五子棋编程例子

  1. 面向过程怎么写呢?
    1) 画出棋盘2)黑子下2)画出棋子3)白子下4)画出棋子5)判断输赢6)重复步骤7)输出输赢结果
  2. 面向对象写法
    先抽象类,纵观整个下棋过程可以抽象出3类:
    第一类:人;人类包括两个对象黑和白,这两个对象其实是完全一样的
    第二类:画图系统
    第三类:判定系统
    整个程序只需要几个对象之间传递数据就行。

这样写程序是不是很简洁明了,还有其他很多优点比如这个程序可以分工合作来写,一个人写第一类;一个人写第二类;一个人写第三类,最后只需提供输入输出的接口就行,类里面就是一个黑匣子不用管里面是什么;还有比如说画图系统的美术风格变了,那么面向对象编程只需要在类里面改就行了,甚至还可以提供几个风格供用户选择,实现这个功能在面向对象里就非常方便,如果是面向对过程编程,画图系统分布于整个程序不同位置,改起来就很麻烦。

到这里为止,你应该对面向对象编程有个大概直观的了解了,那么接下来我们看看matlab如何创建类、对象以及如何面向对象编程。

首先建议大家使用最新版Matlab,因为Matlab一直在对AppDesigner更新,,2020相比2019就加了好多东西,所以我建议使用最新版本。那么我们开始吧

二、使用步骤

1.新建类

在这里插入图片描述

2.代码说明

classdef untitled
    %UNTITLED 此处显示有关此类的摘要
    %   此处显示详细说明
    
    properties
        Property1
    end
    
    methods
        function obj = untitled(inputArg1,inputArg2)
            %UNTITLED 构造此类的实例
            %   此处显示详细说明
            obj.Property1 = inputArg1 + inputArg2;
        end
        
        function outputArg = method1(obj,inputArg)
            %METHOD1 此处显示有关此方法的摘要
            %   此处显示详细说明
            outputArg = obj.Property1 + inputArg;
        end
    end
end

上图就是一个空白类,untitled就是类的名字;properties就是类的属性;methods就是类的方法

3.创建点类

下面通过一个简单的例子来讲解类

构造一个点类,属性有x,y,类方法里的第一个函数为构造函数,规则则为下面代码所示;注:类的属性和方法都可以用点来调用和赋值,和结构体类似

classdef point
    properties
        x
        y
        l
    end
    
    methods
        function obj = point(x,y)
            obj.x = x;
            obj.y = y;
        end
        function obj=get_l(obj)
            obj.l = sqrt(obj.x^2+obj.y^2);
        end
    end
end

这样一个简单的2维点类就构造完毕,现在我们可以构建两个点p1和p2,p1,p2即为对象:p1=(1,1),p2=(1,2)

p1=point(1,1)
p2=point(1,2)

构造完类就可以添加方法了,比如我想知道点到原点的距离,我们就可以添加一个属性l来表示,并在方法里加个函数,取名get_l,如下:

classdef point
    properties
        x
        y
        l
    end
    
    methods
        function obj = point(x,y)
            obj.x = x;
            obj.y = y;
        end
        function obj=get_l(obj)
            obj.l = sqrt(obj.x^2+obj.y^2);
        end
    end
end

这样我们要知道p1到原点的距离可以这样调用:

p1=point(1,1)
p1.get_l

当然我们还可以继续添加属性和方法根据我们需要,到这里为止,构造类,创建对象,调用方法的基本方法我们已经会了,当然面向对象编程还有许多进阶技巧,这些就需要大家自己在实践中自己掌握了。


总结

以上就是Matlab构建类的方法,当然这是最基础的概念,由于Matlab Appdesigner是用面向对象编程的方式写的,所以掌握类的概念十分重要,下一章通过具体的例子来进一步说明类的使用。

本人专业光学设计工作者,业余Matlab爱好者,感兴趣的可以关注我的微信公众号“靠谱光学”,分享靠谱知识。
在这里插入图片描述

  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值