HOME

TheInfoList




A method in
object-oriented programming Object-oriented programming (OOP) is a programming paradigm Programming paradigms are a way to classify programming languages based on their features. Languages can be classified into multiple paradigms. Some paradigms are concerned mai ...
(OOP) is a procedure associated with a
message A message is a discrete unit of communication Communication (from Latin ''communicare'', meaning "to share" or "to be in relation with") is "an apparent answer to the painful divisions between self and other, private and public, and inner ...
and an
object Object may refer to: General meanings * Object (philosophy), a thing, being, or concept ** Entity, something that is tangible and within the grasp of the senses ** Object (abstract), an object which does not exist at any particular time or pl ...
. An object consists of ''data'' and ''behavior''; these compose an ''interface'', which specifies how the object may be utilized by any of its various consumers.Consumers of an object may consist of various kinds of elements, such as other programs, remote computer systems, or computer programmers who wish to utilize the object as part of their own programs. Data is represented as
properties Property (''latin: Res Privata'') in the abstract is what belongs to or with something, whether as an attribute or as a component of said thing. In the context of this article, it is one or more components (rather than attributes), whether phys ...
of the object, and behaviors are represented as methods. For example, a Window object could have methods such as open and close, while its state (whether it is open or closed at any given point in time) would be a property. In
class-based programming Class-based programming, or more commonly class-orientation, is a style of object-oriented programming Object-oriented programming (OOP) is a programming paradigm Programming paradigms are a way to classify programming languages based o ...
, methods are defined within a
class Class or The Class may refer to: Common uses not otherwise categorized * Class (biology), a taxonomic rank * Class (knowledge representation), a collection of individuals or objects * Class (philosophy), an analytical concept used differently f ...
, and objects are instances of a given class. One of the most important capabilities that a method provides is ''
method overriding Method overriding, in object-oriented programming Object-oriented programming (OOP) is a programming paradigm based on the concept of "Object (computer science), objects", which can contain data and code: data in the form of Field (computer sci ...
'' - the same name (e.g., area) can be used for multiple different kinds of classes. This allows the sending objects to invoke behaviors and to delegate the implementation of those behaviors to the receiving object. A method in
Java Java ( id, Jawa, ; jv, ꦗꦮ; su, ) is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea to the north. With a population of 147.7 million people, Java is the world's List of ...
programming sets the behavior of a class object. For example, an object can send an area message to another object and the appropriate formula is invoked whether the receiving object is a rectangle, circle, triangle, etc. Methods also provide the interface that other classes use to access and modify the properties of an object; this is known as ''encapsulation''. Encapsulation and overriding are the two primary distinguishing features between methods and procedure calls.


Overriding and overloading

Method overriding Method overriding, in object-oriented programming Object-oriented programming (OOP) is a programming paradigm based on the concept of "Object (computer science), objects", which can contain data and code: data in the form of Field (computer sci ...
and overloading are two of the most significant ways that a method differs from a conventional procedure or function call. Overriding refers to a subclass redefining the implementation of a method of its superclass. For example, findArea may be a method defined on a shape class, triangle, etc. would each define the appropriate formula to calculate their area. The idea is to look at objects as "black boxes" so that changes to the internals of the object can be made with minimal impact on the other objects that use it. This is known as encapsulation and is meant to make code easier to maintain and re-use. Method overloading, on the other hand, refers to differentiating the code used to handle a message based on the parameters of the method. If one views the receiving object as the first parameter in any method then overriding is just a special case of overloading where the selection is based only on the first argument. The following simple Java example illustrates the difference:


Accessor, mutator and manager methods

Accessor methodIn computer science Computer science deals with the theoretical foundations of information, algorithms and the architectures of its computation as well as practical techniques for their application. Computer science is the study of Algorith ...
s are used to read the data values of an object. Mutator methods are used to modify the data of an object. Manager methods are used to initialize and destroy objects of a class, e.g. constructors and destructors. These methods provide an
abstraction layerIn computing Computing is any goal-oriented activity requiring, benefiting from, or creating computing machinery. It includes the study and experimentation of algorithmic processes and development of both computer hardware , hardware and software. ...
that facilitates
encapsulation Encapsulation may refer to: Chemistry * Molecular encapsulation, in chemistry, the confinement of an individual molecule within a larger molecule * Micro-encapsulation, in material science, the coating of microscopic particles with another materi ...
and
modularity Broadly speaking, modularity is the degree to which a system A system is a group of Interaction, interacting or interrelated elements that act according to a set of rules to form a unified whole. A system, surrounded and influenced by its en ...
. For example, if a bank-account class provides a getBalance() accessor method to retrieve the current
balance Balance may refer to: Common meanings * Balance (ability) in biomechanics * Balance (accounting) * Balance or weighing scale Arts and entertainment Film * Balance (1983 film), ''Balance'' (1983 film), a Bulgarian film * Balance (1989 film), ''Bal ...
(rather than directly accessing the balance data fields), then later revisions of the same code can implement a more complex mechanism for balance retrieval (e.g., a
database In computing, a database is an organized collection of Data (computing), data stored and accessed electronically from a computer system. Where databases are more complex they are often developed using formal #Design and modeling, design and mode ...

database
fetch), without the dependent code needing to be changed. The concepts of encapsulation and modularity are not unique to object-oriented programming. Indeed, in many ways the object-oriented approach is simply the logical extension of previous paradigms such as
abstract data types In computer science Computer science deals with the theoretical foundations of information, algorithms and the architectures of its computation as well as practical techniques for their application. Computer science is the study of Algo ...
and
structured programming Structured programming is a programming paradigm Programming paradigms are a way to classify programming languages based on their features. Languages can be classified into multiple paradigms. Some paradigms are concerned mainly with impli ...
.


Constructors

A ''constructor'' is a method that is called at the beginning of an object's lifetime to create and initialize the object, a process called
construction Construction is a general term meaning the and to form , , or ,"Construction" def. 1.a. 1.b. and 1.c. ''Oxford English Dictionary'' Second Edition on CD-ROM (v. 4.0) Oxford University Press 2009 and comes from ''constructio'' (from ''com-' ...
(or ''instantiation''). Initialization may include an acquisition of resources. Constructors may have parameters but usually do not return values in most languages. See the following example in Java: public class Main


Destructors

A '' destructor'' is a method that is called automatically at the end of an object's lifetime, a process called
destruction Destruction refers to damage to an object, system, being or idea (as in legal damages and physical vandalism) beyond the capability to repair. Concepts * Destruktion, a term from the philosophy of Martin Heidegger * Destructive narcissism, a pat ...
. Destruction in most languages does not allow destructor method arguments nor return values. Destruction can be implemented so as to perform cleanup chores and other tasks at object destruction.


Finalizers

In garbage-collected languages, such as
Java Java ( id, Jawa, ; jv, ꦗꦮ; su, ) is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea to the north. With a population of 147.7 million people, Java is the world's List of ...
, C#, and
Python PYTHON was a Cold War contingency plan of the Government of the United Kingdom, British Government for the continuity of government in the event of Nuclear warfare, nuclear war. Background Following the report of the Strath Committee in 1955, the ...
, destructors are known as ''
finalizer In computer science, a finalizer or finalize method is a special method (computer science), method that performs finalization, generally some form of cleanup. A finalizer is executed during object destruction, prior to the object being deallocation ...
s''. They have a similar purpose and function to destructors, but because of the differences between languages that utilize garbage-collection and languages with manual memory management, the sequence in which they are called is different.


Abstract methods

An ''abstract method'' is one with only a
signature A signature (; from la, signare, "to sign") is a handwritten (and often stylized) depiction of someone's name, nickname, or even a simple "X" or other mark that a person writes on documents as a proof of identity and intent. The writer of a s ...
and no . It is often used to specify that a subclass must provide an implementation of the method. Abstract methods are used to specify
interfaces Interface or interfacing may refer to: Academic journals * Interface (journal), ''Interface'' (journal), by the Electrochemical Society * ''Interface, Journal of Applied Linguistics'', now merged with ''ITL International Journal of Applied Lin ...
in some programming languages.


Example

The following
Java Java ( id, Jawa, ; jv, ꦗꦮ; su, ) is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea to the north. With a population of 147.7 million people, Java is the world's List of ...
code shows an abstract class that needs to be extended: abstract class Shape The following subclass extends the main class: public class Rectangle extends Shape


Reabstraction

If a subclass provides an implementation for an abstract method, another subclass can make it abstract again. This is called ''reabstraction''. In practice, this is rarely used.


Example

In C#, a virtual method can be overridden with an abstract method. (This also applies to Java, where all non-private methods are virtual.) class IA abstract class IB : IA Interfaces' default methods can also be reabstracted, requiring subclasses to implement them. (This also applies to Java.) interface IA interface IB : IA class C : IB // error: class 'C' does not implement 'IA.M'.


Class methods

Class methods are methods that are called on a
class Class or The Class may refer to: Common uses not otherwise categorized * Class (biology), a taxonomic rank * Class (knowledge representation), a collection of individuals or objects * Class (philosophy), an analytical concept used differently f ...
rather than an instance. They are typically used as part of an object meta-model. I.e, for each class, defined an instance of the class object in the meta-model is created. Meta-model protocols allow classes to be created and deleted. In this sense, they provide the same functionality as constructors and destructors described above. But in some languages such as the Common Lisp Object System (CLOS) the meta-model allows the developer to dynamically alter the object model at run time: e.g., to create new classes, redefine the class hierarchy, modify properties, etc.


Special methods

Special methods are very language-specific and a language may support none, some, or all of the special methods defined here. A language's compiler may automatically generate default special methods or a programmer may be allowed to optionally define special methods. Most special methods cannot be directly called, but rather the compiler generates code to call them at appropriate times.


Static methods

Static methods are meant to be relevant to all the instances of a class rather than to any specific instance. They are similar to
static variable In computer programming Computer programming is the process of designing and building an executable computer program to accomplish a specific computing result or to perform a specific task. Programming involves tasks such as: analysis, generat ...
s in that sense. An example would be a static method to sum the values of all the variables of every instance of a class. For example, if there were a Product class it might have a static method to compute the average price of all products. In Java, a commonly used static method is: Math.max(double a, double b) This static method has no owning object and does not run on an instance. It receives all information from its arguments. A static method can be invoked even if no instances of the class exist yet. Static methods are called "static" because they are resolved at
compile time In computer science Computer science deals with the theoretical foundations of information, algorithms and the architectures of its computation as well as practical techniques for their application. Computer science is the study of co ...
based on the class they are called on and not dynamically as in the case with instance methods, which are resolved polymorphically based on the runtime type of the object.


Copy-assignment operators

Copy-assignment operators define actions to be performed by the compiler when a class object is assigned to a class object of the same type.


Operator methods

Operator methods define or redefine operator symbols and define the operations to be performed with the symbol and the associated method parameters. C++ example: #include class Data ;


Member functions in C++

Some procedural languages were extended with object-oriented capabilities to leverage the large skill sets and legacy code for those languages but still provide the benefits of object-oriented development. Perhaps the most well-known example is
C++ C++ () is a general-purpose programming language In computer software, a general-purpose programming language is a programming language dedicated to a general-purpose, designed to be used for writing software in a wide variety of application ...

C++
, an object-oriented extension of the C programming language. Due to the design requirements to add the object-oriented paradigm on to an existing procedural language, message passing in C++ has some unique capabilities and terminologies. For example, in C++ a method is known as a ''member function''. C++ also has the concept of
virtual function In object-oriented programming Object-oriented programming (OOP) is a programming paradigm based on the concept of "Object (computer science), objects", which can contain data and code: data in the form of Field (computer science), fields (oft ...
s which are member functions that can be overridden in
derived class In object-oriented programming Object-oriented programming (OOP) is a programming paradigm based on the concept of "Object (computer science), objects", which can contain data and code: data in the form of Field (computer science), fields (oft ...
es and allow for
dynamic dispatch In computer science Computer science deals with the theoretical foundations of information, algorithms and the architectures of its computation as well as practical techniques for their application. Computer science is the study of Algo ...
.


Virtual functions

''
Virtual function In object-oriented programming Object-oriented programming (OOP) is a programming paradigm based on the concept of "Object (computer science), objects", which can contain data and code: data in the form of Field (computer science), fields (oft ...
s'' are the means by which a C++ class can achieve polymorphic behavior. ''Non-virtual member functions'', or ''regular methods'', are those that do not participate in polymorphism. C++ Example: #include #include class Super ; class Sub : public Super ; int main()


See also

*
Property (programming) A property, in some object-oriented Object-oriented programming (OOP) is a programming paradigm Program, programme, programmer, or programming may refer to: Business and management * Program management, the process of managing several rel ...
*
Remote method invocationIn a distributed computing environment, distributed object communication realizes communication between distributed objects. The main role is to allow objects to access data and invoke Method (computer programming), methods on remote objects (objects ...

Remote method invocation
*
Subroutine In computer programming Computer programming is the process of designing and building an executable computer program to accomplish a specific computing result or to perform a particular task. Programming involves tasks such as analysis, generat ...
, also called subprogram, routine, procedure or function


Notes


References

* * * * * * * * * {{DEFAULTSORT:Method (Computer Science) Articles with example C++ code sv:Funktion (programmering)#Metod