Main Content

本页的翻译已过时。点击此处可查看最新英文版本。

属性 get 方法

属性访问方法概述

有关属性访问方法的概述,请参阅属性访问方法

属性 get 方法语法

每当查询属性值时,MATLAB® 都会调用属性的 get 方法。

注意

您不能直接调用属性访问方法。MATLAB 会在您访问属性值时调用这些方法。

属性 get 方法使用以下语法,其中 PropertyName 是属性的名称。函数必须返回属性值。

methods 
   function value = get.PropertyName(obj)
      ...
end

计算从属属性的值

SquareArea 类定义了一个从属属性 Area。MATLAB 不存储从属属性 Area 的值。当您查询 Area 属性的值时,MATLAB 调用 get.Area 方法,根据 WidthHeight 属性来计算它的值。

classdef SquareArea
   properties
      Width
      Height
   end
   properties (Dependent)
      Area
   end
   methods
      function a = get.Area(obj)
         a = obj.Width * obj.Height;
      end
   end
end

get 方法不返回错误

MATLAB 默认对象显示会禁止显示从属性 get 方法返回的错误消息。MATLAB 不允许属性 get 方法发出的错误阻止整个对象的显示。

请使用属性 set 方法来验证属性值。在设置属性时对其值进行验证可确保对象处于有效状态。仅在要返回经 set 方法验证过的值时再使用属性 get 方法。

get 方法行为

在以下情况下,MATLAB 不调用属性 get 方法:

  • 从属性自己的 get 方法中获取属性值。这样可避免对 get 方法的递归调用

  • 复制值对象(即,不从 handle 类派生)时。将属性值从一个对象复制到另一个对象时,既不调用 set 方法也不调用 get 方法。

相关主题