Main Content

Method Attributes

Purpose of Method Attributes

Specifying attributes in the class definition enables you to customize the behavior of methods for specific purposes. Control characteristics like access, visibility, and implementation by setting method attributes. Subclasses do not inherit superclass member attributes.

Specifying Method Attributes

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

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

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.

Method Attributes

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 that 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 does not contain function or end keywords, only the function syntax (for example, [a,b] = myMethod(x,y)).

  • The method can include comments after the signature line.

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 Class Members Access

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.

Framework attributes

Classes that use certain framework base classes have framework-specific attributes. See the documentation for the specific base class you are using for information on these attributes.

See Also

|

Related Topics