class::Method
categories::Core>Kernel
summary:: Code that implements an operation upon instances of a Class.
related:: Classes/Class

description::
A Method is code that is a part of the set of operations upon instances of a link::Classes/Class::.

subsection:: Related Keywords

method:: thisMethod

The global pseudo-variable code::thisMethod:: always evaluates to the enclosing Method in a class definition, much like code::thisFunction::.
When executed outside that context, it returns link::Classes/Interpreter#-functionCompileContext::, the method within which all interpreted code executes.

code::
// if the following code were compiled as part of the class library:
SomeClass {
	methodThatPostsItself {
		thisMethod.postln;
	}
}

// then running this would post
// "SomeClass:methodThatPostsItself"
a = SomeClass.new;
a.methodThatPostsItself;
::

code::thisMethod:: is frequently used to pass information to error-throwing methods. For example, the implementation of code::Nil.new:: is:

code::
*new { ^this.shouldNotImplement(thisMethod) }
::

See also: link::Classes/Function#.thisFunction#thisFunction::.

instanceMethods::

method::ownerClass
returns::
The link::Classes/Class:: for which the method is part of the implementation.

method::name
returns::
A link::Classes/Symbol:: which is the name of the Method.

method::primitiveName
returns::
A link::Classes/Symbol:: which contains the name of the primitive function that implements the Method, if there is one.

method:: filenameSymbol
returns::
A link::Classes/Symbol:: which is the full path of the source file that this method is defined in.

