Method (computer programming): Difference between revisions

Content deleted Content added
m Methods in C++: Inserted hyphen between "well" and "known"
Minor-
Line 1:
A '''method''' (or '''message''') in [[object-oriented programming]] (OOP) is a [[Procedure (computer science)|procedure]] associated with an [[Object (computer science)|object]]. An object is made up of data and behavior, which form the interface that an object presents to the outside world. Data is represented as [[Property (programming)|properties]] of the object and behavior as methods. For example, a <code>Window</code> object would have methods such as <code>open</code> and <code>close</code>, while its state (whether it is opened or closed) would be a property.
 
In [[class-based programming]], methods are defined in a [[class (computer science)|class]], and objects are instances of a given class. One of the most important capabilities that a method provides is method overriding. The same name (e.g., <code>area</code>) 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. Method in Java programming sets the behaviour of class object. For example, an object can send an <code>area</code> message to another object and the appropriate formula will beis invoked whether the receiving object is a <code>rectangle</code>, <code>circle</code>, <code>triangle</code>, etc.
 
Methods also provide the interface that other classes use to access and modify the data [[Property (programming)|properties]] of an object. This is known as encapsulation. Encapsulation and overriding are the two primary distinguishing features between methods and procedure calls.<ref>{{cite web|title=What is an Object?|url=http://docs.oracle.com/javase/tutorial/java/concepts/object.html|work=oracle.com|publisher=Oracle Corporation|accessdate=13 December 2013}}</ref>
Line 101:
This static method has no owning object and does not run on an instance. It receives all information from its arguments.<ref>{{Cite book|title = Clean Code: A Handbook of Agile Software Craftsmanship|last = Martin|first = Robert C.|publisher = Prentice Hall|year = 2009|isbn = 978-0-13-235088-4|___location = |pages = 296|author-link = Robert Cecil Martin}}</ref>
 
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 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. Therefore, static methods cannot be overridden.<ref>[http://www.javabeat.net/qna/49-can-we-override-static-methods-what-is-metho/ http://www.javabeat.net/qna/49-can-we-override-static-methods-what-is-metho/]</ref>
 
===Copy-assignment operators===
Line 126:
 
==Methods in C++==
Some procedural languages were extended with object-oriented capabilities in order 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 was the object-oriented extension of C known as C++. Due to the design requirements to add the object-oriented paradigm on to an existing procedural language message passing in C++ had some unique capabilities and terminologies. For example, in C++ a method was also known as a member function. C++ also had the concept of virtual methods:
 
===Virtual methods===
''[[Virtual methods]]'' are the means by which a C++ class can achieve polymorphic behavior. ''Non-virtual methods'', or ''regular methods'', are those whichthat do not participate in [[polymorphism (computer science)|polymorphism]].
 
C++ Example: