G.Bordel >Docencia >TAP Técnicas Actuales de Programación (curso 2010-2011)
desprotegido Intro. desprotegido Temario desprotegido Calendario desprotegido RPF desprotegido Recursos protegido Práctica protegido Gest. Alum.
tema_anterior Tema 4: Elementos relacionados con la orientación a objeto tema_siguiente
  1. Objetos y clases.
  2. Estructura de la definición de una clase.
  3. Herencia.
  4. Encapsulamiento (ámbitos de accesibilidad).
  5. El bloque static y los atributos static y final.
  6. Instanciación, inicialización y eliminación de objetos.[ejercicios]
  7. Clases y métodos abstractos.[ejercicios]
  8. Interfaces.[ejercicios]
  9. Polimorfismo.
  10. Arrays*.[ejercicios]
  11. Enumeraciones.

4.2- Estructura de la definición de una clase

En el presente apartado aparecen una serie de palabras reservadas nuevas que lo hacen solo a efectos de completar la definición sintáctica de una clase, pero que no son explicadas en su significado por el momento, por lo que no se tienen en consideración en la siguiente tabla.

Palabras reservadas en Java
abstractbooleanbreakbytecasecatch
charclassconst*continuedefaultdo
doubleelseextendsfinalfinallyfloat
forgoto*ifimplementsimportinstanceof
intinterfacelongnativenewpackage
privateprotectedpublicreturnshortstatic
strictfp**superswitchsynchronizedthisthrow
throwstransienttryvoidvolatilewhile

Ya se vio en [§2.1] un ejemplo de definición de clases en el que aparecian elementos que toca explicar ahora. En realidad, sólo aparecian en aquel momento ciertos elementos estrictamente necesarios, pero la definición de clases puede ser, como veremos, más elaborada.

Si bien no es estrictamente cierto, podemos considerar que sólo se realizará una definición de clase por fichero. El fichero tendrá tres elementos: una declaración de paquete, una serie de importaciones de clases y la definición de la clase propiamente dicha. Los dos primeros elementos pueden aparecer o no.

La declaración de paquete no es otra cosa que una declaración explícita del punto en la estructura de paquetes en el que se debe situar la clase en cuestión. En el caso de que se trabaje directamente en el directorio raiz de dicha estructura (o simplemente esta no existe) no será necesario hacer esta declaración. La serie de importaciones de clases es una lista de referencias a clases que se usarán en la definición que se lleva a cabo. Todo esto puede comprobarse en el ejemplo que se dió en [§2.2]: la linea 10 es la declaración de paquete, y las 12 y 13 las importaciones de clases. En concreto la 12 hace referencia a la clase "Method" dentro del paquete java.lang.reflect y la 13 hace referencia a todas las clases (usa el "*") dentro del paquete java.lang.util. Esto permite al compilador "conocer" dichas clases cuando hagamos referencia a ellas, ya que por defecto el compilador solo conocerá las clases del paquete correspondiente a la clase en definición y las del paquete java.lang que contiene las clases más comunes.


Ejemplo de declaración de paquete e importaciones en la definición de una clase.

Como se ve en la siguiente figura, la definición de la clase se engloba entre llaves precediéndola por una declaración que al menos contiene la palabra reservada "class" seguida por el identificador de la clase. Opcionalmente esto puede ir acompañado de otros elementos que se irán viendo más adelante, y que incluyen, una declaración del ámbito de acceso, las características de ser "abstracta" o "final", así como el hecho de "extender" a otra clase y de "implementar" uno o varios interfaces. La situación más habitual en los ejemplos más símples que podemos encontrar inicialmente incluirá tan sólo la declaración del ámbito de acceso "public" junto la palabra reservada "class" y el nombre de la clase..


La definición de la clase se engloba entre llaves precediéndola por una declaración que al menos contiene la palabra reservada "class" seguida por el identificador de la clase. Opcionalmente esto puede ir acompañado de otros elementos que se irán viendo más adelante, y que incluyen, una declaración del ámbito de acceso, las características de ser "abstracta" o "final", así como el hecho de "extender" a otra clase y de "implementar" uno o varios interfaces.

Siguiente punto: 4.3- Herencia


Plataforma de soporte a curso y contenidos (c) German Bordel 2005.