MATLAB 面向对象编程 APP Designer基础


类的基本组成


  1. 定义一个类 < 表示可继承
  2. 创建实例化对象
  3. 添加属性(公有或私有属性)
  4. 构造方法,初始化
  5. 设置函数和获取函数
  6. 继承
  7. 多态(同一个函数传递不同的对象)

基本模板,点击MATLAB中新建+类

classdef untitled %驼峰式命名 CamelCase 定义一个类
    %UNTITLED 此处显示有关此类的摘要
    %   此处显示详细说明
    
    properties %不加(Access = public)也默认为公有属性
        Property1
    end
    
    methods(Access = public) %不加(Access = public)也默认为公有方法
        function obj = untitled(inputArg1,inputArg2) %方法中用来定义函数
            %UNTITLED 构造此类的实例
            %   此处显示详细说明
            obj.Property1 = inputArg1 + inputArg2;
        end
        
        function 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('喵喵~');
        end
        
        function gaga(obj)
            disp(['我是', obj.name, '我是一只乌鸦~嘎嘎']);
            disp('嘎嘎~');
        end    
            
        function 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
    end
    
    properties(Access = public)
        name
        type
    end
>> cat
cat = 
  Cat - 属性:

    name: '大猫'
    type: '橘猫'
>> bird
bird = 
  Cat - 属性:

    name: '小黑'
    type: '乌鸦'

面向对象编程(Object Oriented Programming,简称OOP)


在Python中,一切皆对象。
从本质上说对象是一组数据以及操作这些数据的函数。数字、字符串、列表、字典和函数都是对象。

要创建新型对象,必须创建类。从本质上说,类就是设计蓝图,设计模板,用于创建特定类型的对象。
MATLAB 面向对象编程 APP Designer基础_第1张图片
继承是一个重要的OOP功能:创建新的类时,可让它继承已有类的数据和函数,避免了代码的重复编写。

在MATLAB APP Designer中也是通过OOP来进行开发
MATLAB 面向对象编程 APP Designer基础_第2张图片
回调用于链接代码中类的功能与图形界面设计中的组件。

你可能感兴趣的:(Matlab)