TutorJava Nivel Básico

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
}

.�La Declaraci�n de M�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.

Junto con el nombre del m�todo, la declaraci�n lleva informaci�n como el tipo de retorno del m�todo, el n�mero y el tipo de los argumentos necesarios, y qu� otras clases y objetos pueden llamar al m�todo.

Los �nicos elementos necesarios para una declaraci�n de m�todo son el nombre y el tipo de retorno del m�todo. Por ejemplo, el c�digo siguiente declara un m�todo llamado estaVacio() en la clase Pila que devuelve un valor booleano (true o false).

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

.�Devolver un Valor desde un M�todo

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).

Los m�todos pueden devolver tipos de datos primitivos o tipos de datos de referencia. El m�todo estaVacio() de la clase Pila devuelve un tipo de dato primitivo, un valor booleano.

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;
    }
}

Sin embargo, el m�todo pop de la clase PILA devuelve un tipo de dato de referencia: un objeto.

class Pila {
    static final int PILA_VACIA = -1;
    Object[] stackelements;
    int topelement = PILA_VACIA;
    . . .
    Object pop() {
        if (topelement == PILA_VACIA)
            return null;
        else {
            return stackelements[topelement--];
        }
    }
}

Los m�todos utilizan el operador return para devolver un valor. Todo m�todo que no sea declarado como void debe contener una sentencia return.

El tipo de dato del valor devuelto por la sentencia return debe corresponder con el tipo de dato que el m�todo tiene que devolver; no se puede devolver un objeto desde un m�todo que fue declarado para devolver un entero.

Cuando se devuelva un objeto, el tipo de dato del objeto devuelto debe ser una subclase o la clase exacta indicada. Cuando se devuelva un tipo interface, el objeto retornado debe implementar el interface especificado.

.�Un Nombre de M�todo

Un nombre de m�todo puede ser cualquier indentificador legal en Java. Existen tres casos especiales a tener en cuenta con los nombres de m�todos.

  1. Java soporta la sobrecarga de m�todos, por eso varios m�todos pueden compartir el mismo nombre. Por ejemplo, supon que se ha escrito una clase que puede proporcionar varios tipos de datos (cadenas, enteros, etc...) en un �rea de dibujo. Se podr�a escribir un m�todo que supiera como tratar a cada tipo de dato. En otros lenguajes, se tendr�a que pensar un nombre distinto para cada uno de los m�todos. dibujaCadena(), dibujaEntero, etc... En Java, se puede utilizar el mismo nombre para todos los m�todos pas�ndole un tipo de par�metro diferente a cada uno de los m�todos. Entonces en la clase de dibujo, se podr�n declarar tres m�todos llamados draw() y que cada uno aceptara un tipo de par�metro diferente.
    class DibujodeDatos {
        void draw(String s) {
            . . .
        }
        void draw(int i) {
            . . .
        }
        void draw(float f) {
            . . .
        }
    }
    

    Nota: La informaci�n que hay dentro de los par�ntesis de la declaraci�n son los argumentos del m�todo. Los argumentos se cubren en la siguiente p�gina: Pasar Informaci�n a un M�todo.

    Los m�todos son diferenciados por el compilador bas�ndose en el n�mero y tipo de sus argumentos. As� draw(String s)y draw(int i) son m�todos distintos y �nicos. No se puede declarar un m�todo con la misma firma: draw(String s)y draw(String t) son id�nticos y dar�n un error del compilador.

    Habr�s observado que los m�todos sobrecargados deben devolver el mismo tipo de dato, por eso void draw(String s) e int draw(String t) declarados en la misma clase producir�n un error en tiempo de compilaci�n.

  2. 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. Los constructores s�lo pueden ser llamados con el operador new. Para aprender c�mo escribir un constructor, puedes ver Escribir un M�todo Constructor.
  3. Una clase puede sobreescribir un m�todo de sus superclases. El m�todo que sobreescribe debe tener el mismo, nombre, tipo de retorno y lista de par�metros que el m�todo al que ha sobreescrito. Sobreescribir M�todos te ense�ar� como sobreescribir los m�todos de una superclase.

.�Caracter�sticas Avanzadas de la Declaraci�n de M�todos

Junto con los dos elementos necesarios, una declaraci�n de m�todo puede contener otros elementos. Estos elementos declaran los argumentos aceptados por el m�todo, si el m�todo es un m�todo de clase, etc...

Junt�ndolo todo, una declaraci�n de m�todo se parecer�a a esto.

[especificadordeAcceso] [static] [abstract] [final] [native] [synchronized]
tipodeRetorno nombredelM�todo ([listadepar�metros]) [throws listadeExcepciones]

Cada uno de estos elementos de una declaraci�n se cubre en alguna parte de este tutorial.

COMPARTE ESTE ARTÍCULO

COMPARTIR EN FACEBOOK
COMPARTIR EN TWITTER
COMPARTIR EN LINKEDIN
COMPARTIR EN WHATSAPP