Browse Definitions :

method (in object-oriented programming)

What is a method (in object-oriented programming)?

In object-oriented programming (OOP), a method is a programmed procedure that is defined as part of a class and is available to any object instantiated from that class. Each object can call the method, which runs within the context of the object that calls it. This makes it possible to reuse the method in multiple objects that have been instantiated from the same class.

The objects remain independent of each other throughout the application's runtime. If one of the objects calls a method, that method can access only the data known to the object, ensuring data integrity across the application. A class -- and thus, an object -- can contain multiple methods. Each of those methods can be invoked through the class, although they all operate independently from each other.

The way in which methods are defined, referenced and invoked differs from one OOP language to the next, but the basic principles are generally the same. Once a class and its methods have been defined, an application can reference the class, either directly from within the same file or by pointing to the class where it resides. For example, an application might import a package or module that includes the class, and then use its methods within the application code. The application can then instantiate objects based on the class and access the class's methods.

The SOLID principles of object-oriented design: single responsibility, open/closed, Liskov substitution, interface segregation and dependency inversion.
The five specific aspects of object-oriented programming are known as the SOLID principles.

Example of how methods work in object-oriented programming

The following Python scripts provide a basic example of how classes and methods work in an OOP language. The first script creates a simple class named Author, which contains three methods.

class Author:

  def __init__(self, self, first='', middle='', last=''):
    self.first = first
    self.middle = middle
    self.last = last

  def get_name(self):
    names = [self.first, self.middle, self.last]
    full_name = ' '.join(filter(None, names))
    return full_name

  def update_name(self, first='', middle='', last=''):
    self.first = first
    self.middle = middle
    self.last = last
    return 'Updated name: ' + self.get_name()

The first method, __init__, is a special method that serves as a constructor in Python classes. The method enables an application to instantiate an object based on the Author class, using the parameters first, middle and last. In this way, an application can pass in the names when creating the object. The __init__ method is commonly included in Python class definitions. Other languages have comparable structures for instantiating an object based on a class.

Diagram illustrating the structure and naming in OOP.
An example of the structure and naming in object-oriented programming.

The second method, get_name, retrieves the full name of the author associated with the instantiated object. The method simply concatenates the first, middle and last names, using the join and filter methods to omit parts of the name that might be empty strings, such as with an author who does not use a middle name or initial. The method returns the author's full name as output.

The third method, update_name, changes the author's name based on user input. The method includes the same three input parameters as the class itself: first, middle and last. Also like the class, each parameter is assigned a default value, which is an empty string. In this way, an application can create an Author object or update the properties in the object by specifying the individual arguments, as in first='Zora'. After updating the author's name, the method runs the get_name method and returns the new full name.

For this example, the class is saved to a file named, which can then be referenced from another Python file just like a module. The next script imports the Author class from BookClasses and then creates four Author objects.

from BookClasses import Author

auth1 = Author('Zora', 'Neale', 'Hurston')
auth2 = Author('Mark', '', 'Twain')
auth3 = Author(first='Virginia', last='Woolf')
auth4 = Author('Arthur', 'C.', 'Clarke')

auths = [auth1, auth2, auth3, auth4]
count = 1

for auth in auths:
  auth_name = auth.get_name()
  print(str(count) + '. ' + auth_name)
  count += 1

The first Author object definition calls the Author class and passes in three arguments for the author's name. The object is assigned to the auth1 variable. The variable can then be referenced later in the script to access the class's methods.

The other three Author object definitions work in a similar way. The only difference, other than author names, is that the auth3 object uses the parameter names when passing in the arguments. In this way, only those arguments need to be provided, and they can be specified in any order.

After the Author objects have been created, they're added to the auths list. Next, a for loop iterates through the list, running the get_name method on each Author object and then printing the author's full name. The for loop also increments the counter so that a new number is assigned to each author, giving us the following results.

1. Zora Neale Hurston
2. Mark Twain
3. Virginia Woolf
4. Arthur C. Clarke

The next Python script demonstrates how to use the update_name method in the Author class, once again importing the class from BookClasses.

from BookClasses import Author

auth = Author('Edgar', 'A.', 'Poe')

new_name = auth.update_name('Edgar', 'Allan', 'Poe')

After importing the Author class, the script creates an Author object and assigns it to the auth variable, similar to how it was done in the previous script. The variable is then used to call the update_name method, passing in the updated author's name. The script assigns the method's output to the new_name variable and then prints the variable's value, giving the following results.

Updated name: Edgar Allan Poe

The ability to create classes and methods and then access those methods through instantiated objects is one of the most powerful capabilities in OOP languages. Languages such as C++, C#, Java and Python rely heavily on classes and methods to carry out the types of procedural logic inherent in today's applications. In C#, for example, all executed instructions are performed within the context of methods. In fact, the entry point for every C# application is the Main method.

Explore the basics of functional vs. object-oriented programming.

This was last updated in February 2023

Continue Reading About method (in object-oriented programming)

  • unshielded twisted pair (UTP)

    Unshielded twisted pair (UTP) is a ubiquitous type of copper cabling used in telephone wiring and local area networks (LANs).

  • Multiprotocol Label Switching (MPLS)

    Multiprotocol Label Switching (MPLS) is a switching mechanism used in wide area networks (WANs).

  • computer network

    A computer network is a group of interconnected nodes or computing devices that exchange data and resources with each other.

  • three-factor authentication (3FA)

    Three-factor authentication (3FA) is the use of identity-confirming credentials from three separate categories of authentication ...

  • cyber espionage

    Cyber espionage (cyberespionage) is a type of cyber attack that malicious hackers carry out against a business or government ...

  • role-based access control (RBAC)

    Role-based access control (RBAC) is a method of restricting network access based on the roles of individual users within an ...

  • knowledge-based systems (KBSes)

    Knowledge-based systems (KBSes) are computer programs that use a centralized repository of data known as a knowledge base to ...

  • Sarbanes-Oxley Act

    The Sarbanes-Oxley Act of 2002 is a federal law that established sweeping auditing and financial regulations for public companies.

  • project charter

    A project charter is a formal short document that states a project exists and provides project managers with written authority to...

  • employee engagement

    Employee engagement is the emotional and professional connection an employee feels toward their organization, colleagues and work.

  • talent pool

    A talent pool is a database of job candidates who have the potential to meet an organization's immediate and long-term needs.

  • diversity, equity and inclusion (DEI)

    Diversity, equity and inclusion is a term used to describe policies and programs that promote the representation and ...

Customer Experience
  • sales development representative (SDR)

    A sales development representative (SDR) is an individual who focuses on prospecting, moving and qualifying leads through the ...

  • service level indicator

    A service level indicator (SLI) is a metric that indicates what measure of performance a customer is receiving at a given time.

  • customer data platform (CDP)

    A customer data platform (CDP) is a type of software application that provides a unified platform of customer information that ...