NOTA: La traducción de esta documentación es un esfuerzo personal y voluntario, no es un documento oficial de Sun Microsystems ni Oracle ni está patrocinado por ninguna de estas empresas. Los documentos originales (en inglés) están disponibles en: http://docs.oracle.com/javase/tutorial/.
Dirija cualquier comentario, petición, felicitación, etc. a tutorialesjava_@RROBA_codexion.com.
Si desea ayudar a mantener en funcionamiento esta web, colaborar con la traducción de estos documentos o necesita que se traduzca algún capítulo en concreto puede realizar una donación directa mediante Paypal:
Definición de métodos (Los tutoriales Java™ > El lenguaje Java > Clases y objetos)
Ruta: El lenguaje Java
Lección: Clases y objetos
Sección: Clases
Definición de métodos
Página inicial > El lenguaje Java > Clases y objetos
Definición de métodos
Este es un ejemplo de una declaración de método normal:
public double calculateAnswer(double wingSpan, int numberOfEngines, double length, double grossTons) {
        // aquí se realizan los cálculos
}
 
Los únicos elementos requeridos de una declaración de método son su tipo de retorno, su nombre, una pareja de paréntesis, () y un cuerpo entre corchetes {}.

Las declaraciones de métodos tienen, en general, seis componentes, en este orden:

  1. Modificadores, como public, private y otros que se comentarán más adelante.
  2. El tipo de retorno, el tipo de dato del valor devuelto por el método, o void si el método no devuelve ningún valor.
  3. El nombre del método—las reglas de nomenclatura de campos también se aplica a los nombres de métodos, pero el convenio difiere un poco.
  4. La lista de parámetros entre paréntesis—una lista, separada por comas, de parámetros de entrada, precedidos por su tipo de dato, encerrado entre paréntesis (). Si no hay parámetros se deben utilizar paréntesis vacios.
  5. Una lista de excepciones—se verá más tarde.
  6. El cuerpo del método, encerrado entre llaves—aquí va el código del método, incluyendo la declaración de variables locales.
Discutiremos los modificadores, tipos de retorno y parámetros más adelante en esta lección. Las excepciones se tratarán en otra lección.

Definicion: La firma del método la comprenden dos de los componentes de la declaración—el nombre del método y los tipos de parámetros.
La firma del método declarado más arriba es:
calculateAnswer(double, int, double, double)

Nombrar un método

Aunque cualquier identificador válido puede ser un nombre de método, los convenios de código los restringen. Por convenio los nombres de métodos deben ser un verbo en minúsculas o un nombre compuesto de varias palabras que empieza con un verbo en minúsculas, seguido de adjetivos, sustantivos, etc. En los nombres de varias palabras la primera letra de cada palabra, excepto la primera, deberán ir en mayúsculas. Veamos unos ejemplos:
ejecutar
run
ejecutarRapido
obtenerFondo
verDatosFinales
compararCon
fijarX
esVacio
 
Normalmente un método tiene un nombre único dentro de su clase. Sin embargo un método puede tener el mismo nombre que otros métodos debido a la sobrecarga de métodos.

Sobrecarga de métodos

El lenguaje de programación Java permite la sobrecarga de métodos y sabe distinguir entre métodos con diferentes firmas de métodos. Esto significa que métodos dentro de una misma clase pueden tener el mismo nombre si tienen una lista de parámetros diferente (hay ciertos requisitos para esto que se tratarán en la lección «Interfaces y herencia»).

Supongamos que tenemos una clase que utiliza la caligrafía para trazar distintos tipos de datos (cadenas, enteros, etc.) y que contiene un método para dibujar cada tipo de dato. Sería pesado utilizar un nombre distinto para cada método, por ejemplo, drawString, drawInteger, drawFloat, y así sucesivamente. Con el lemguaje de programación Java podremos utilizar el mismo nombre para todos los métodos pero pasando una lista de parámetros distinta a cada uno de ellos. Así, la clase que dibuja los datos podría declarar cuatro métodos llamados draw, cada uno de los cuales tiene una lista de parámetros distinta.

public class DataArtist {
        ...
        public void draw(String s) {
                ...
        }
        public void draw(int i) {
                ...
        }
        public void draw(double f) {
                ...
        }
        public void draw(int i, double f) {
                ...
        }
}
 
Los métodos sobrecargados se diferencian por el número y el tipo de argumentos pasados al mismo. En el ejemplo de código, draw(String s) y draw(int i) son métodos distintos y únicos porque requieren diferentes tipos de argumentos.

No se puede declarar más de un método con el mismo nombre y el mismo número y tipo de argumentos porque el compilador no sabrá distinguirlos.

El compilador no toma en consideración el tipo de dato devuelto al diferenciar métodos por lo que no podrá declarar dos métodos con la misma firma aunque el valor de retorno sea de un tipo diferente.


Nota: La sobrecarga de métodos se debe utilizar con mesura ya que hacen que el código sea más difícil de leer.
Pagina anterior: Declaración de variables miembro
Página siguiente: Proporcionar constructores para las clases