¿Cuál es la diferencia entre un método y una función?

Resuelto willc2 asked hace 15 años • 42 respuestas

¿ Alguien puede proporcionar una explicación sencilla de los métodos frente a las funciones en el contexto de la programación orientada a objetos?

willc2 avatar Oct 01 '08 06:10 willc2
Aceptado

Una función es un fragmento de código que se llama por su nombre. Se le pueden pasar datos para operar (es decir, los parámetros) y, opcionalmente, puede devolver datos (el valor de retorno). Todos los datos que se pasan a una función se pasan explícitamente.

Un método es un fragmento de código llamado por un nombre asociado con un objeto. En la mayoría de los aspectos es idéntico a una función excepto por dos diferencias clave:

  1. A un método se le pasa implícitamente el objeto en el que fue llamado.
  2. Un método puede operar con datos contenidos dentro de la clase (recordando que un objeto es una instancia de una clase; la clase es la definición, el objeto es una instancia de esos datos).

(esta es una explicación simplificada, ignorando cuestiones de alcance , etc.)

Andrew Edgecombe avatar Oct 01 '2008 00:10 Andrew Edgecombe

Un método está en un objeto o es estático en una clase.
Una función es independiente de cualquier objeto (y fuera de cualquier clase).

Para Java y C#, sólo existen métodos.
Para C, sólo hay funciones.

Para C++ y Python dependerá de si estás o no en una clase.
Pero en inglés básico:

  • Función : Característica o funcionalidad independiente.
  • Método : Una forma de hacer algo, que tiene diferentes enfoques o métodos, pero relacionados con el mismo aspecto (también conocido como clase).
Aaron avatar Sep 30 '2008 23:09 Aaron