Estructura y Miembros de Una Clase
Estructura y Miembros de Una Clase
Estructura y Miembros de Una Clase
UNA CLASE.
ESTRUCTURA Y MIEMBROS DE UNA CLASE.
Para declarar una clase en Java se usa la palabra
reservada class. En la declaración de una clase
vas a encontrar:
Cabecera de la clase. Compuesta por una serie de
modificadores de acceso, la palabra reservada class y
el nombre de la clase.
Cuerpo de la clase. En él se especifican los
distintos miembros de la
clase: atributos y métodos. Es decir, el contenido de
la clase.
ESTRUCTURA Y MIEMBROS DE UNA CLASE.
ESTRUCTURA Y MIEMBROS DE UNA CLASE.
Como puedes observar, el cuerpo de la clase es
donde se declaran los atributos que caracterizan
a los objetos de la clase y donde se define e
implementa el comportamiento de dichos objetos;
es decir, donde se declaran e implementan
los métodos.
DECLARACIÓN DE UNA CLASE.
La declaración de una clase en Java tiene la
siguiente estructura general:
[modificadores] class <NombreClase> [herencia]
[interfaces] { // Cabecera de la clase // Cuerpo
de la clase Declaración de los atributos
Declaración de los métodos }
DECLARACIÓN DE UNA CLASE
/**
*
* Ejemplo de clase Punto
*/
class Punto {
// Atributos
int x,y;
// Métodos
int obtenerX () { return x; }
int obtenerY() {return y;}
void establecerX (int vx) { x= vx; };
void establecerY (int vy) { y= vy; };
}
En este caso se trata de una clase muy sencilla en
la que el cuerpo de la clase (el área entre las
llaves) contiene el código y las declaraciones
necesarias para que los objetos que se construyan
(basándose en esta clase) puedan funcionar
apropiadamente en un programa (declaraciones
de atributos para contener el estado del objeto y
métodos que implementen el comportamiento de
la clase y los objetos creados a partir de ella).
A la hora de implementar una clase Java debes tener en
cuenta:
Por convenio, se ha decidido que en lenguaje Java los nombres de las
clases deben de empezar por una letra mayúscula. Así, cada vez
que observes en el código una palabra con la primera letra en
mayúscula sabrás que se trata de una clase sin necesidad de tener que
buscar su declaración. Además, si el nombre de la clase está
formado por varias palabras, cada una de ellas también tendrá
su primera letra en mayúscula. Siguiendo esta recomendación,
algunos ejemplos de nombres de clases podrían ser: Recta, Circulo,
Coche, CocheDeportivo, Jugador, JugadorFutbol, AnimalMarino,
AnimalAcuatico, etc.
El archivo en el que se encuentra una clase Java debe tener el mismo
nombre que esa clase si queremos poder utilizarla desde otras clases
que se encuentren fuera de ese archivo (clase principal del
archivo).
Tanto la definición como la implementación de una clase se incluye en
el mismo archivo (archivo ".java"). En otros lenguajes como por
ejemplo C++, definición e implementación podrían ir en archivos
separados (por ejemplo en C++, serían sendos archivos con
extensiones ".h" y ".cpp").
CABECERA DE UNA CLASE.
En general, la declaración de una clase puede
incluir los siguientes elementos y en el siguiente
orden:
Modificadores tales como public, abstract o final.
El nombre de la clase (con la primera letra de cada
palabra en mayúsculas, por convenio).
El nombre de su clase padre (superclase), si es que
se especifica, precedido por la palabra
reservada extends ("extiende" o "hereda de").
Una lista separada por comas de interfaces que son
implementadas por la clase, precedida por la palabra
reservada implements ("implementa").
El cuerpo de la clase, encerrado entre llaves {}.
DECLARACIÓN DE UNA CLASE
La sintaxis completa de una cabecera (los cuatro
primeros puntos) queda de la forma:
[modificadores] class <NombreClase> [extends
<NombreSuperClase>][implements
<NombreInterface1>] [[implements
<NombreInterface2>] ...] {
En el ejemplo anterior de la clase Punto teníamos la
siguiente cabecera:
class Punto {
En este caso no hay modificadores, ni indicadores
de herencia, ni implementación de interfaces. Tan
solo la palabra reservada class y el nombre de la
clase. Es lo mínimo que puede haber en la cabecera de
una clase.
La herencia y las interfaces las verás más
adelante. Vamos a ver ahora cuáles son
los modificadores que se pueden indicar al crear la
clase y qué efectos tienen. Los modificadores de
clase son: [public] [final | abstract]
Modificador public. Indica que la clase es visible (se pueden crear
objetos de esa clase) desde cualquier otra clase. Es decir, desde
cualquier otra parte del programa. Si no se especifica este
modificador, la clase sólo podrá ser utilizada desde clases que estén
en el mismo paquete. El concepto de paquete lo veremos más
adelante. Sólo puede haber una clase public (clase principal) en un
archivo .java. El resto de clases que se definan en ese archivo no
serán públicas.
Modificador abstract. Indica que la clase es abstracta. Una clase
abstracta no es instanciable. Es decir, no es posible crear objetos de
esa clase (habrá que utilizar clases que hereden de ella). En este
momento es posible que te parezca que no tenga sentido que esto
pueda suceder (si no puedes crear objetos de esa clase, ¿para qué la
quieres?), pero puede resultar útil a la hora de crear una jerarquía de
clases. Esto lo verás también más adelante al estudiar el concepto
de herencia.
Modificador final. Indica que no podrás crear clases que hereden de
ella. También volverás a este modificador cuando estudies el concepto
de herencia. Los modificadores final y abstract son excluyentes (sólo
se puede utilizar uno de ellos).
CUERPO DE UNA CLASE.
El cuerpo de una clase se encuentra encerrado
entre llaves y contiene la declaración e
implementación de sus miembros. Los miembros
de una clase pueden ser:
Atributos, que especifican los datos que podrá
contener un objeto de la clase.
Métodos, que implementan las acciones que se
podrán realizar con un objeto de la clase.
Una clase puede no contener en su declaración
atributos o métodos, pero debe de contener al
menos uno de los dos (la clase no puede ser
vacía).
DECLARACIÓN DE UNA CLASE
En el ejemplo anterior donde se definía una
clase Punto, tendríamos los siguientes atributos:
Atributo x, de tipo int.
Atributo y, de tipo int.