EQUIPO 5. MÉTODOS: DECLARACIÓN, MENSAJES, PASO DE PARÁMETROS, RETORNO DE VALORES.
Los métodos son subrutinas
que definen la interfaz de una clase, sus capacidades y comportamiento. Un
método ha de tener por nombre cualquier identificador legal distinto de los ya
utilizados por los nombres de la clase en que está definido. Los métodos se
declaran al mismo nivel que las variables de instancia dentro de una definición
de clase.
En la declaración de los
métodos se define el tipo de valor que devuelven y a una lista formal de
parámetros de entrada, de sintaxis tipo identificador separadas por comas. La
forma general de una declaración de método es:
tipo_devuelto
nombre_de_método( lista-formal-de-parámetros ) {
cuerpo_del_método;
}
Por ejemplo el siguiente
método devuelve la suma de dos enteros:
int metodoSuma( int paramX, int paramY ) {
return ( paramX + paramY );
}
En el caso de que no se
desee devolver ningún valor se deberá indicar como tipo la palabra reservada
void. Así mismo, si no se desean parámetros, la declaración del método debería
incluir un par de paréntesis vacíos (sin void):
void metodoVacio( ) { };
Los métodos son llamados
indicando una instancia individual de la clase, que tendrá su propio conjunto
único de variables de instancia, por lo que los métodos se pueden referir
directamente a ellas.
El método inicia() para
establecer valores a las dos variables de instancia sería el siguiente:
void inicia( int paramX, int paramY ) {
x = paramX;
y = paramY;
}
MENSAJES Y MÉTODOS
El modelado de objetos no sólo tiene en
consideración los objetos de un sistema, sino también sus interrelaciones.
Los objetos interactúan enviándose mensajes
unos a otros. Tras la recepción de un mensaje el objeto actuará. La acción
puede ser el envío de otros mensajes, el cambio de su estado, o la ejecución de
cualquier otra tarea que se requiera que haga el objeto. Un método se
implementa en una clase, y determina cómo tiene que actuar el objeto cuando
recibe un mensaje.
Cuando un objeto A necesita
que el objeto B ejecute alguno de sus métodos, el objeto A le manda un mensaje
al objeto B.
Al recibir el mensaje del objeto A, el objeto
B ejecutará el método adecuado para el mensaje recibido.
PARÁMETROS.
Los métodos son un bloque de
código que contiene una serie de instrucciones. En java, cada instrucción se
ejecuta en el contexto de un método.
Los métodos se declaran en
una clase o estructura especificando el nivel de acceso, el valor devuelto, el
nombre del método y los parámetros de método. Los parámetros de método se
incluyen entre paréntesis y separados por comas. Los paréntesis vacíos indican
que el método no requiere ningún parámetro. Esta clase contiene tres métodos:
Public class Motorcycle
{
public void StartEngine()
public void AddGas(int gallons)
public int Drive(int miles, int speed) {
return 0; }
}
Llamar a un método en un
objeto es similar a tener acceso a un campo. Después del nombre de objeto,
agregue un punto, el nombre del método y paréntesis. Los argumentos se enumeran
entre paréntesis y separados por comas. Por tanto, se puede llamar a los métodos
de la clase Motorcycle del modo siguiente:
Motorcycle moto = new Motorcycle();
moto.StartEngine();
moto.AddGas(15);
moto.Drive(5, 20);
Los parámetros que un método
recibe también se proporcionan entre paréntesis, pero se debe especificar el
tipo y nombre de cada parámetro. El nombre no tiene por qué ser igual que el
argumento. Por ejemplo:
public static void PassesInteger()
{
int fortyFour = 44;
TakesInteger(fortyFour);
}
static void TakesInteger(int i)
{
i = 33;
}
Aquí un método denominado
PassesInteger pasa un argumento a un método denominado TakesInteger. En
PassesInteger el argumento se denomina fortyFour, pero en TakeInteger es un
parámetro denominado i. Este parámetro sólo existe dentro del método
TakesInteger. Otras variables también pueden denominarse i y pueden ser de
cualquier tipo, siempre y cuando no sean parámetros o variables declaradas en
ese método.
RETORNO DE VALORES.
Los métodos pueden devolver
un valor al llamador. Si el tipo de valor de retorno (el que aparece antes del
nombre de método) no es void, el método puede devolver el valor mediante la
palabra clave return. Una instrucción con la palabra clave return, seguida de
un valor que coincida con el tipo de valor devuelto, devolverá ese valor al
llamador del método.
La palabra clave return
también detiene la ejecución del método. Si el tipo de valor devuelto es void,
una instrucción return sin ningún valor sigue siendo útil para detener la
ejecución del método. Sin la palabra clave return, el método detendrá la
ejecución cuando llegue al fin del bloque de código. Es necesario que los
métodos con un tipo de valor devuelto no nulo utilicen la palabra clave return
para devolver un valor. Por ejemplo, estos dos métodos utilizan la palabra
clave return para devolver enteros:
Public class SimpleMath
{
public int AddTwoNumbers(int
number1, int number2)
{
return number1 + number2;
}
public int SquareANumber(int
number)
{
return number * number;
}
}
Para emplear un valor
devuelto por un método, el método de llamada puede utilizar la propia llamada
del método en cualquier parte donde un valor del mismo tipo sea suficiente.