Method Attributes

Method Attribute Syntax

Assign method attributes on the same line as the methods keyword:

methods (Attribute1 = value1, Attribute2 = value2,...)
   ...
end

For more information on attribute syntax, see Specifying Attributes.

Table of Method Attributes

Attributes enable you to modify the behavior of methods. All methods support the attributes listed in the following table.

Attribute values apply to all methods defined within the methods...end code block that specifies the nondefault values.

Attribute Name

Class

Description

Abstract

logical Default = false

If true, the method has no implementation. The method has a syntax line that can include arguments, which subclasses use when implementing the method:

  • Subclasses are not required to define the same number of input and output arguments. However, subclasses generally use the same signature when implementing their version of the method.

  • The method can have comments after the function line.

  • The method does not contain function or end keywords, only the function syntax (e.g., [a,b] = myMethod(x,y))

Access

  • enumeration, default = public

  • meta.class object

  • cell array of meta.class objects

Determines what code can call this method:

  • public — Unrestricted access

  • protected — Access from methods in class or subclasses

  • private — Access by class methods only (not from subclasses)

  • List classes that have access to this method. Specify classes as meta.class objects in the form:

    • A single meta.class object

    • A cell array of meta.class objects. An empty cell array, {}, is the same as private access.

    See Controlling Access to Class Members

Hidden

logical Default = false

When false, the method name shows in the list of methods displayed using the methods or methodsview commands. If set to true, the method name is not included in these listings and ismethod does not return true for this method name. .

Sealed

logical Default = false

If true, the method cannot be redefined in a subclass. Attempting to define a method with the same name in a subclass causes an error.

Static

logical Default = false

Specify as true to define a method that does not depend on an object of the class and does not require an object argument. Use the class name to call the method: classname.methodname or an instance of the class: obj.methodname

Static Methods provides more information.

Was this topic helpful?