Los métodos de una clase constituyen la lógica de la clase, es decir, contienen el código que manipula el estado del objeto. Además constituyen el mecanismo utilizado para implementar los mensajes entre
objetos. Quiere decir, cuando un objeto se comunica con otro por un mensaje lo hace por medio de la invocación al método correspondiente del objeto. Y el mecanismo para invocar un método en java es por medio de las referencias
usando el operador de la siguiente forma:
referencia.metodo (parametros);
Declaración de los Métodos
Veamos la forma de declarar un método. La estructura general de una
declaración tiene dos partes, la declaración y el cuerpo del método.
La Declaracion_del_metodo proporciona información sobre su nombre, la accesibilidad del método, el número de parámetros que recibe, etc. El Cuerpo_del_metodo contiene el conjunto de sentencias que manipula
los datos de cada objeto.
Sobrecarga de métodos
Cada método tiene una "firma" por así decirlo, que son su nombre, el tipo y número de sus parámetros. Existe una característica para tener dos métodos (ó constructores) con el mismo nombre. Esta característica se denominasobrecarga de métodos.
Hemos estudiado la construcción de distintos constructores para una clase y hemos puesto como ejemplo el caso de una clase Publicacion. Veamos lo implementado hasta el momento y cómo los constructores nos dan un ejemplo de
sobrecarga de métodos:
El compilador resolverá que constructor debe ejecutar en cada momento en función del número de parámetros y su tipo. Si se llama al constructor sin parámetros se ejecutará el primer constructor y en caso de hacerlo con
dos parámetrosString se ejecutará el segundo.
Nota: El concepto de sobrecarga de métodos se puede aplicar siempre
que los parámetros sean diferentes, bien por su tipo, bien por que el número de parámetros de un método o otro es diferente. Hay que tener cuidado con los tipos: int, byte y short ya que aunque son tipos diferentes, si
hacemos la llamada aún método con un número entero no sabría a cual de los métodos llamar, ya que un entero puede ser considerado de las tres formas. Con double y float no pasa, porque acordaros que hemos de forzar a que
Java entienda un decimal como float, sino lo entiende como double.