一、步骤
step1:定义类名,继承【handle】,否则类内方法传参会失败。
step2:定义属性【properties】
step3:定义方法【methods】。首先要定义构造函数,构造函数名与类名一致。然后定义其他函 数,函数输入参数中需要带有【obj】关键字
二、注意事项
1.类名与文件名一致,按照通用习惯,类名首字母大写。如此处的【MyClass】
2.一定要继承handle句柄类,其作用类似指针;否则函数和属性间传递值会失败。
3.函数名和函数体之间要缩进,函数体的【end】关键字不可省略。
4.properties的更多设置可通过以下命令参考:输入【doc properties】并搜索【属性特性】查看
三、代码示例
文件名为:Myclass.m
% MyClass.m
classdef MyClass < handle
%% properties
properties(Access=public)
% public:类内、类外、子类皆可访问
name;
gendar;
end
properties(Access=protected)
% proteced:类内及子类可访问
age;
height;
weight;
end
properties(Access=private)
% private:只能类内访问
end
properties(Constant)
% 常数,不可修改
pai = pi;
end
properties(Dependent)
% 不怎么了解
end
%% methods
% 所有方法需要在【methods】构造体内,同时注意缩进。
methods
function obj = MyClass(name, gendar, age, height, weight)
% 构造函数。函数名与类名一致;返回值obj作为其他函数的对象传入。
obj.name = name;
obj.gendar = gendar;
obj.age = age;
obj.height = height;
obj.weight = weight;
end
function info = print_info(obj, else_info)
disp('info of the person is followed:');
disp(['name: ', obj.name]);
disp(['gendar: ', obj.gendar]);
disp(['addition info: ', else_info]);
end
function update_age(obj, new_age)
obj.age = new_age;
end
end
end
四、调用过程
1、把类文件放在调用文件同目录,然后调用即可。
% test.m
clc; clear; close all;
t = MyClass('Tom', 'male', 20, 179, 75);
t.print_info('hey');
% 运行结果
% info of the person is followed:
% name: Tom
% gendar: male
% addition info: hey
%%————————————下面的是凑字数内容,不需要看—————————————%%
一、步骤
step1:定义类名,继承【handle】,否则类内方法传参会失败。
step2:定义属性【properties】
step3:定义方法【methods】。首先要定义构造函数,构造函数名与类名一致。然后定义其他函 数,函数输入参数中需要带有【obj】关键字
二、注意事项
1.类名与文件名一致,按照通用习惯,类名首字母大写。如此处的【MyClass】
2.一定要继承handle句柄类,其作用类似指针;否则函数和属性间传递值会失败。
3.函数名和函数体之间要缩进,函数体的【end】关键字不可省略。
4.properties的更多设置可通过以下命令参考:输入【doc properties】并搜索【属性特性】查看