|
|||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||
In object-oriented programming, the term method refers to a subroutine that is exclusively associated either with a class (called class methods, static methods, or factory methods) or with an object (called instance methods). Like a procedure in procedural programming languages, a method usually consists of a sequence of statements to perform an action, a set of input parameters to customize those actions, and possibly an output value (called return value) of some kind. Methods can provide a mechanism for accessing (for both reading and writing) the encapsulated data stored in an object or a class.
Kinds of methodsAs stated above, instance methods are associated with a particular object, while class or static methods are instead associated with a class. In all typical implementations, instance methods are passed a hidden reference (e.g. An abstract method is a dummy code method which has no implementation. It is often used as a placeholder to be overridden later by a subclass of or an object prototyped from the one that implements the abstract method. In this way, abstract methods help to partially specify a framework. An accessor method is a method that is usually small, simple and provides the means for the state of an object to be accessed from other parts of a program. Although it introduces a new dependency, use of the methods are preferred to directly accessing state data because they provide an abstraction layer. For example, if a bank-account class provides a Many languages support methods that are called automatically upon the creation of an instance of a class, known as a Constructors. Some languages have a special syntax for constructors. In Java, C++, C#, ActionScript, and PHP they have the same name as the class of which they are a member (PHP 5 also allows Likewise, some languages have special Destructor methods, i.e. instance methods that are called automatically upon the destruction of an instance of a class. In C++, they are distinguished by having the same name as the class of the object they're associated with, but with the addition of a tilde (~) in front (or Isolation levelsWhereas a C programmer might push a value onto a stack data-structure by calling:
a C++ programmer would write:
The difference is the required level of isolation. In C, the Some recommended usagesA public method should preserve the class invariants of the object it is associated with, and should always assume that they are valid when it commences execution (private methods do not necessarily need to follow this recommendation). To this effect, preconditions are used to constrain the method's parameters, and postconditions to constrain method's output, if it has one. If any one of either the preconditions or postconditions is not met, a method may raise an exception. If the object's state does not satisfy its class invariants on entry to or exit from any method, the program is considered to have a bug. The difference between a procedure and a method is that the latter, being associated with a particular object, may access or modify the data private to that object in a way consistent with the intended behavior of the object. Consequently, rather than thinking "a method is just a sequence of commands", a programmer using an object-oriented language will consider a method to be "an object's way of providing a service" (its "method of doing the job", hence the name); a method call is thus considered to be a request to an object to perform some task. Consequently, method calls are often modeled as a means of passing a message to an object. Rather than directly performing an operation on an object, a message (most of the time accompanied by parameters) is sent to the object telling it what it should do. The object either complies or raises an exception describing why it cannot do so. Applied to our stack example, rather than pushing a value onto the stack, a value is sent to the stack, along with the message "push". Static methodsAs mentioned above, a method may be declared as static (or public class ExampleClass { public static void StaticExample() { // static method code } public void InstanceExample() { // instance method code here // can use THIS } } /// Consumer of the above class: // Static method is called -- no instance is involved ExampleClass.StaticExample(); // Instance method is called ExampleClass objMyExample = new ExampleClass(); objMyExample.InstanceExample(); Confusingly, methods marked as class Dict: @classmethod def fromkeys(cls, iterable, value=None): d = cls() for key in iterable: dkey = value return d See also |
| All Right Reserved © 2007, Designed by Stylish Blog. |