It needs to be specified explicitly. In Python and Perl, the parameter need not necessarily be named codice_1 or codice_2; it can be named freely by the programmer like any other parameter. However, by informal convention, the first parameter of an instance method in Perl or Python is named codice_2. Rust requires the self object to be called codice_20 or codice_2, depending on whether the invoked function borrows the invocant, or moves it in, respectively. Static methods in C++ or Java are not associated with instances but classes, and so cannot use codice_1, because there is no object. In other languages, such as Ruby, Smalltalk, Objective-C, or Swift, the method is associated with a "class object" that is passed as codice_1, and they are called class methods. For class methods, Python uses codice_24 to access to the "class object". When lexical scoping is used to infer codice_1, the use of codice_1 in code, while not illegal, may raise warning bells to a maintenance programmer, although there are still legitimate uses of codice_1 in this case, such as referring to instance variables hidden by local variables of the same name, or if the method wants to return a reference to the current object, i.e. codice_1, itself. In some compilers (for example GCC), pointers to C++ instance methods can be directly cast to a pointer of another type, with an explicit codice_1 pointer parameter. The dispatch semantics of codice_1, namely that method calls on codice_1 are dynamically dispatched, is known as open recursion, and means that these methods can be overridden by derived classes or objects. By contrast, direct named recursion or anonymous recursion of a function uses closed recursion, with early binding. For example, in the following Perl code for the factorial, the token codice_32 is a reference to the current function:  use feature ":5.16"; sub {  By contrast, in C++ (using an explicit codice_1 for clarity, though not necessary) the codice_1 binds to the object itself, but if the class method was declared "virtual" i.e. polymorphic in the base, it's resolved via dynamic dispatch (late binding) so that derived classes can override it.  unsigned int factorial(unsigned int n)  This example is artificial, since this is direct recursion, so overriding the codice_35 method would override this function; more natural examples are when a method in a derived class calls the same method in a base class, or in cases of mutual recursion.