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】并搜索【属性特性】查看