This is machine translation

Translated by Microsoft
Mouseover text to see original. Click the button below to return to the English verison of the page.

Note: This page has been translated by MathWorks. Please click here
To view all translated materals including this page, select Japan from the country navigator on the bottom of this page.

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,...)

For more information on attribute syntax, see Attribute Specification.

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




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))


  • 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


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. .


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.


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?