G.Bordel >Docencia >TAP | Técnicas Actuales de Programación | (curso 2010-2011) | |||||||
|
|||||||||
tema_anterior | Tema 4: Elementos relacionados con la orientación a objeto | tema_siguiente |
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 | |||||
abstract | boolean | break | byte | case | catch |
char | class | const* | continue | default | do |
double | else | extends | final | finally | float |
for | goto* | if | implements | import | instanceof |
int | interface | long | native | new | package |
private | protected | public | return | short | static |
strictfp** | super | switch | synchronized | this | throw |
throws | transient | try | void | volatile | while |
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. |