EXES
CRÉDITOS
ÍNDICE DEL MANUAL
PRÓLOGO
EL LENGUAJE JAVA
BIBLIOGRAFÍA
EXES. LA COMPAÑÍA
 
Área de Programación y Desarrollo
  Curso de Introducción a Java
www.exes.es
Tel: 902 360 417
 Exes   Contactar 

4.4.4 Definición de métodos de una clase

Para definir los métodos se emplea la siguiente sintaxis:

         [modifVisibilidad] [modifFunción] tipo nombreFunción (listaParámetros) [throws listaExcepciones]
         {
         }
         

Para modifVisibilidad se aplica las mismas normas que para atributos:

  • public: indica que es un método accesible a través de una instancia del objeto.
  • private: indica que a través de una instancia no es accesible el método. Al heredar el método se convierte en inaccesible.
  • protected: indica que a través de una instancia no es accesible el método. Al heredar si se puede usar desde la clase derivada.
  • Sin especificar: indica visibilidad de paquete, se puede acceder a través de una instancia, pero sólo de clases que se encuentren en el mismo paquete.

nombreFunc debe de ser un identificador válido en el lenguaje.

tipo es el tipo del valor devuelto por la función, pudiendo ser:

  • Un tipo básico.
  • Un objeto de una clase o interfaz. En este tipo de objetos se incluyen las matrices o vectores.
  • void, en el caso de no devolver ningún valor.
listaParámetros es la lista de los parámetros que tomará la función separados por comas y definidos cada uno de ellos como:
	      tipo nombreParámetro
	      
modifFunción puede tener los siguientes valores:
  • static: el método pertenece a la clase, no a los objetos creados a partir de la clase.
  • final: el método no puede ser sobrescrito en una clase derivada.
  • abstract: En esta clase no se proporciona el código para la función, se debe de proporcionar en alguna clase derivada. En el caso de poseer un método abstracto la clase debe de llevar a su vez el modificador abstract. En caso de ser abstracto un método, se debe de sustituir las llaves que contienen el código por un punto y coma.
  • native: Es un método no escrito en java, sino en código nativo, que será usado en java como un método propio de java.
  • synchronized: Es un método que sólo puede ser ejecutado por un hilo, y hasta que ese hilo no acabe la llamada al método no puede comenzar la llamada al método otro hilo. Lo emplearemos al trabajar con hilos.

La cláusula opcional throws es empleada para indicar que dentro del método se pueden generar errores en su ejecución, y que debemos estar preparados para tratarlos.

listaExcepciones es el nombre de todos esos posibles errores, su utilización la veremos en el punto dedicado a la gestión de errores mediante try y catch.

El método posee un par de llaves, dentro de las cuales estará el código que se ejecutará al ser llamada la función. Dicho código estará formado por instrucciones válidas en el lenguaje, finalizadas generalmente por punto y coma.

Práctica
Continuamos con la clase Persona:
  • Vamos a crear 4 métodos que permitan acceder a los atributos privados de la clase persona. Los agregamos dentro de la clase:
            public int getEdad()
            {
                 return edad;
            }
            public void setEdad(int laEdad)
            {
                 edad = laEdad;
            }
            public String getNombre()
            {
                 return nombre;
            }
            public void setNombre(String elNombre)
            {
                 nombre = elNombre;
            }
            
  • Regresemos a la clase Arranque, y localicemos dentro del método main la línea comentada
            //per1.nombre = "Luis"
            
  • Vamos a sustituirla (como está comentada no es necesario borrarla) por:
            per1.setNombre("Luis");
            
  • Lo mismo vamos realizar en la segunda línea comentada, sustituyamosla por:
            System.out.println(per1.getNombre());
            
  • Compilamos y ejecutamos la clase Arranque.
  • Ahora estaremos pensando que para que necesitamos métodos públicos para acceder a variables privadas cuando es más sencillo tener variables públicas y acceder a ellas libremente sin tener que emplear funciones. Vamos a modificar algunas cosas para entender porque es más interesante emplear funciones de acceso a atributos privados.
  • Modificar el código de la función setEdad para que sea:
            if(laEdad<0){
                 System.out.println("Una persona no puede tener una edad negativa.");
            }
            else
            {
                 edad = laEdad;
            }
            
  • Volvamos a la clase Arranque, en el método main, y además del código que ya hay en su interior agregaremos:
            per1.setEdad(4);
            System.out.println(per1.getEdad());
            per1.setEdad(-35);
            
  • Compilar y ejecutar la clase Arranque.
··> Ver todos los cursos
··> Si necesitas más información, contáctanos aquí
 
 
 
Sello de Calidad   Sello de Calidad
  EXES - C/ Albasanz, 14 Bis, 1-C. 28037 Madrid - Tel: 902 360 417 Fax: 902 931 305 - exes@exes.es