MATLAB 面向对象编程 APP Designer基础

类的基本组成

  1. 定义一个类 < 表示可继承
  2. 创建实例化对象
  3. 添加属性(公有或私有属性)
  4. 构造方法,初始化
  5. 设置函数和获取函数
  6. 继承
  7. 多态(同一个函数传递不同的对象)
【MATLAB 面向对象编程 APP Designer基础】基本模板,点击MATLAB中新建+类
classdef untitled %驼峰式命名 CamelCase 定义一个类 %UNTITLED 此处显示有关此类的摘要 %此处显示详细说明properties %不加(Access = public)也默认为公有属性 Property1 endmethods(Access = public) %不加(Access = public)也默认为公有方法 function obj = untitled(inputArg1,inputArg2) %方法中用来定义函数 %UNTITLED 构造此类的实例 %此处显示详细说明 obj.Property1 = inputArg1 + inputArg2; endfunction outputArg = method1(obj,inputArg) %METHOD1 此处显示有关此方法的摘要 %此处显示详细说明 outputArg = obj.Property1 + inputArg; end end end

详细例程:
classdef Cat < handle%('< handle' 表示继承这个类) %成员属性 properties name age type end%定义成员方法 methods %构造方法,用于初始化 function obj = Cat(name, age, type) %U构造此类的实例化对象 obj.name = name; obj.age = age; obj.type = type; end%成员方法 function meow(obj) %obj为一个默认参数,必填,用于描述对象 disp(['我叫', obj.name, '喵喵']); disp('喵喵~'); endfunction gaga(obj) disp(['我是', obj.name, '我是一只乌鸦~嘎嘎']); disp('嘎嘎~'); endfunction change_name(obj, new_name)%要想实现此功能,类的定义中必须添加'< handle',否则无法修改 obj.name = new_name; end end end

命令行:
>> cat = Cat('猪王',2,'橘猫') cat = Cat - 属性:name: '猪王' age: 2 type: '橘猫' >> cat.name ans = '猪王' >> cat.age=3 cat = Cat - 属性:name: '猪王' age: 3 type: '橘猫' >> cat.meow() 我叫猪王喵喵 喵喵~ >> change_name(cat, '大猫') >> cat.name ans = '大猫' >> cat cat = Cat - 属性:name: '大猫' age: 3 type: '橘猫' >> bird = Cat('小黑','4','乌鸦') bird = Cat - 属性:name: '小黑' age: '4' type: '乌鸦' >> bird.gaga() 我是小黑我是一只乌鸦~嘎嘎 嘎嘎~

如果将成员属性改为私有,则外部无法进行访问
%成员属性 properties(Access = private) age endproperties(Access = public) name type end

>> cat cat = Cat - 属性:name: '大猫' type: '橘猫' >> bird bird = Cat - 属性:name: '小黑' type: '乌鸦'

面向对象编程(Object Oriented Programming,简称OOP) 在Python中,一切皆对象。
从本质上说对象是一组数据以及操作这些数据的函数。数字、字符串、列表、字典和函数都是对象。
要创建新型对象,必须创建类。从本质上说,类就是设计蓝图,设计模板,用于创建特定类型的对象。
MATLAB 面向对象编程 APP Designer基础
文章图片

继承是一个重要的OOP功能:创建新的类时,可让它继承已有类的数据和函数,避免了代码的重复编写。
在MATLAB APP Designer中也是通过OOP来进行开发
MATLAB 面向对象编程 APP Designer基础
文章图片

回调用于链接代码中类的功能与图形界面设计中的组件。

    推荐阅读