学习笔记

您所在的位置:网站首页 matalab调用函数 学习笔记

学习笔记

2023-10-27 08:20| 来源: 网络整理| 查看: 265

本系列内容为《MATLAB面向对象编程–从入门到设计模式》学习笔记,特此说明。

定义类的方法

类的方法(Method)一般用来查询(Query)对象的状态,或者向对象发出一个命令(Command),比如操作对象中的数据。在MATLAB面向对象编程中,类方法的定义要放在method block中,和一般函数定义类似,方法的定义以关键词function开始,以关键词end结束。

...... methods function [returnValue]=functionName(arguments) ...... end end

若成员方法代码量比较大,可以在类定义中仅给出函数的声明,把函数实现放到一个独立的文件中。

说明:

这种方法需要创建一个@classname的文件夹,然后把类的定义和方法的实现都放到该文件夹中,然后在@classname的外部调用该类的构造函数。某些函数不能采用这种方式,比如类的Constructor和Destructor(析构函数),以及Static方法,都必须在类的定义中实现。 调用类的方法

点调用方式:obj.memberFunction(arg1,arg2)

函数调用方式:memberFunction(obj,arg1,arg2)

点调用和函数调用类方法的区别

虽然两种方法基本等价,但仍有一些细微的区别:

使用点调用方式符合面向对象的风格,程序的可读性高,这是施加在对象上的一种操作。使用函数调用方式满足传统的面向过程的编程习惯,在某些情况下,兼容旧的MATLAB代码。使用点调用可以清楚的表示MATLAB调用的时成员方法还是函数。 类的构造函数

构造函数(Constructor)是一种特殊的成员方法:

Constructor和类的名称相同,用来创造类的实例。MATLAB类定义中只能有1个Constructor·。Constructor有且只能有一个返回值,且必须是新创建的对象,这是唯一创建一个新的对象的方式。 classdef Point2D < handle properties x y end methods function obj = Point2D(x0,y0) %返回值必须是一个obj obj.x=x0; obj.y=y0; end end end >> clear classes; >> p1=Point2D(1.0,2.0); %使用构造函数创建对象 在构造函数中给属性赋值

在Constructor中也可以给对象的属性赋值。即使在property block中已经提供了默认值,Constructor中赋的新值也将取代property block中的默认值。

classdef Point2D < handle properties x=cos(pi/2); %Constructor被调用之前x的默认值 y=sin(pi/3); %Constructor被调用之前y的默认值 end methods function obj = Point2D(x0,y0) %返回值必须是一个obj obj.x=x0; %新的x0,y0将会取代初值 obj.y=y0; end end end

MATLAB在声明一个对象时的工作顺序是:先装载类的定义,然后再调用构造函数,这时属性被重新赋值。

如何让构造函数接受不同数目的参数

由于MATLAB是弱类型检查的解释性语言,不能通过函数函数重载的方式找到相匹配的函数,但是可以通过参数数目(nargin)的不同来选择不同的代码。

classdef Point2D < handle properties x=cos(pi/2); %Constructor被调用之前x的默认值 y=sin(pi/3); %Constructor被调用之前y的默认值 end methods function obj = Point2D(x0,y0) if nargin == 0 % 如果没有提供参数 obj.x=cos(pi/2); obj.y=sin(pi/3); else if nargin == 2 %如果提供了参数 obj.x=x0; obj.y=y0; end end end end 默认构造函数

默认构造函数(Default Constructor)一般性定义:不带任何参数的构造函数。

可以把默认构造函数理解成构造函数内部可以处理nargin==0的情况,并且返回新构建的对象的那部分代码。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3