Leccion 7 Java

Preview:

Citation preview

Similarmente a la implementación de una clase, la implementación de un método consiste en dos partes, la declaración y el cuerpo del método.

declaracióndeMétodo { cuerpodeMétodo}

Una declaración de método proporciona mucha información sobre el método al compilador, al sistema en tiempo de ejecución y a otras clases y objetos.

class Pila { . . . boolean estaVacio() { . . . }}

Java necesita que un método declare el tipo de dato del valor que devuelve. Si un método no devuelve ningún valor, debe ser declarado para devolver void (nulo).

class Pila { static final int PILA_VACIA = -1; Object[] stackelements; int topelement = PILA_VACIA; . . . boolean estaVacio() { if (topelement == PILA_VACIA) return true; else return false; }}

Un nombre de método puede ser cualquier indentificador legal en Java.

Todo método cuyo nombre sea igual que el de su clase es un constructor y tiene una tarea especial que realizar. Los constructores se utilizan para inicializar un objeto nuevo del tipo de la clase.

Cuando se escribe un método, se declara el número y tipo de los argumentos requeridos por ese método. Esto se hace en la firma del método.

En Java, se puede pasar como argumento a un método cualquier tipo de dato válido en Java. Esto incluye tipos primitivos, como enteros, dobles, etc.. y tipos de referencia como arrays, objetos, etc...

Cuando se declara un argumento para un método Java, se proporciona el nombre para ese argumento. Este nombre es utilizado dento del cuerpo del método para referirse al valor del argumento.

class Circle { int x, y, radius; public Circle(int x, int y, int radius) { . . . }}

En los métodos Java, los argumentos son pasados por valor. Cuando se le llama, el método recibe el valor de la variable pasada.

class Stack { static final int PILA_VACIA = -1; Object[] elementosPila; int elementoSuperior = PILA_VACIA; . . . boolean estaVacio() { if (elementoSuperior == PILA_VACIA) return true; else return false; } Object poner() { if (elementoSuperior == PILA_VACIA) return null; else { return elementosPila[elementoSuperior--]; } }}

Normalmente, dentro del cuerpo de un método de un objeto se puede referir directamente a las variables miembros del objeto. Sin embargo, algunas veces no se querrá tener ambigüedad sobre el nombre de la variable miembro y uno de los argumentos del método que tengan el mismo nombre.

Si el método oculta una de las variables miembro de la superclase, se puede referir a la variable oculta utilizando super. De igual forma, si el método sobreescribe uno de los métodos de la superclase, se puede llamar al método sobreescrito a través de super.

class OtraClase extends MiClase { boolean unaVariable; void unMetodo() { unaVariable = false; super.unMetodo(); System.out.println(unaVariable); System.out.println(super.unaVariable); } }

Dentro del cuerpo de un método se puede declarar más variables para usarlas dentro del método. Estas variables son variables locales y viven sólo mientras el control permanezca dentro del método.