lunes, 20 de febrero de 2012

2.1 Declaración de clases

Para descargar el documento con este tema, haz clic aquí

Durante todo esta undad se va a trabajar en la construcción de una clase MiPunto, que modeliza un punto en un espacio plano:
class MiPunto{
 
  int x, y;
 
  int metodoSuma( int paramX, int paramY ) {
 
    return ( paramX + paramY );
 
  }
 
  double distancia(int x, int y) {
 
    int dx= this.x – pX;
 
    int dy = this.y – pY;
 
    return Math.sqrt(dx*dx + dy*dy);
 
  }
 
  void metodoVacio( ) { }
 
  void inicia( int paramX, int paramY ) {
 
    x = paramX;
 
    y = paramY;
 
  }
 
  void inicia2( int x, int y ) {
 
    x = x; // Ojo, no modificamos la variable de instancia!!!
 
    this.y = y; // Modificamos la variable de instancia!!!
 
  }
 
  MiPunto( int paramX, int paramY ) {
 
    this.x = paramX; // Este this se puede omitir
 
    y = paramY; // No hace falta this
 
  }
 
  MiPunto() {
 
    inicia(-1,-1); //Por defecto ; this(-1,-1) hace lo mismo
 
  }
 
}
 

Definición de una clase

El elemento básico de la programación orientada a objetos en Java es la clase. Una clase define la forma y comportamiento de un objeto.
Para crear una clase sólo se necesita un archivo fuente que contenga la palabra clave reservada class seguida de un identificador legal y un bloque delimitado por dos llaves para el cuerpo de la clase.
class MiPunto {
}
Un archivo de Java debe tener el mismo nombre que la clase que contiene, y se les suele asignar la extensión ".java". Por ejemplo la clase MiPunto se guardaría en un fichero que se llamase MiPunto.java. Hay que tener presente que en Java se diferencia entre mayúsculas y minúsculas; el nombre de la clase y el de archivo fuente han de ser exactamente iguales.
Aunque la clase MiPunto es sintácticamente correcta, es lo que se viene a llamar una clase vacía, es decir, una clase que no hace nada. Las clases típicas de Java incluirán variables y métodos de instancia. Los programas en Java completos constarán por lo general de varias clases de Java en distintos archivos fuente.
Una clase es una plantilla para un objeto. Por lo tanto define la estructura de un objeto y su interfaz funcional, en forma de métodos. Cuando se ejecuta un programa en Java, el sistema utiliza definiciones de clase para crear instancias de las clases, que son los objetos reales. Los términos instancia y objeto se utilizan de manera indistinta. La forma general de una definición de clase es:
class Nombre_De_Clase {
 
  tipo_de_variable nombre_de_atributo1;
 
  tipo_de_variable nombre_de_atributo2;
 
  // . . .
 
  tipo_devuelto nombre_de_método1( lista_de_parámetros ) {
 
    cuerpo_del_método1;
 
  }
 
  tipo_devuelto nombre_de_método2( lista_de_parámetros ) {
 
    cuerpo_del_método2;
 
  }
 
  // . . .
 
}
 
Los tipos tipo_de_variable y tipo_devuelto, han de ser tipos simples Java o nombres de otras clases ya definidas. Tanto Nombre_De_Clase, como los nombre_de_atributo y nombre_de_método, han de ser identificadores Java válidos.

Los atributos

Los datos se encapsulan dentro de una clase declarando variables dentro de las llaves de apertura y cierre de la declaración de la clase, variables que se conocen como atributos. Se declaran igual que las variables locales de un método en concreto.
Por ejemplo, este es un programa que declara una clase MiPunto, con dos atributos enteros llamados x e y.
class MiPunto {
 
  int x, y;
 
}
 
Los atributos se pueden declarar con dos clases de tipos: un tipo simple Java (ya descritos), o el nombre de una clase (será una referencia a objeto, véase el punto C.a de este mismo apartado).
Cuando se realiza una instancia de una clase (creación de un objeto) se reservará en la memoria un espacio para un conjunto de datos como el que definen los atributos de una clase. A este conjunto de variables se le denomina variables de instancia.

Los métodos

Los métodos son subrutinas que definen la interfaz de una clase, sus capacidades y comportamiento.
Un método ha de tener por nombre cualquier identificador legal distinto de los ya utilizados por los nombres de la clase en que está definido. Los métodos se declaran al mismo nivel que las variables de instancia dentro de una definición de clase.
En la declaración de los métodos se define el tipo de valor que devuelven y a una lista formal de parámetros de entrada, de sintaxis tipo identificador separadas por comas. La forma general de una declaración de método es:
tipo_devuelto nombre_de_método( lista-formal-de-parámetros ) {
 
  cuerpo_del_método;
 
}
 
Por ejemplo el siguiente método devuelve la suma de dos enteros:
int metodoSuma( int paramX, int paramY ) {
 
  return ( paramX + paramY );
 
}
 
En el caso de que no se desee devolver ningún valor se deberá indicar como tipo la palabra reservada void. Así mismo, si no se desean parámetros, la declaración del método debería incluir un par de paréntesis vacíos (sin void):
void metodoVacio( ) { };
Los métodos son llamados indicando una instancia individual de la clase, que tendrá su propio conjunto único de variables de instancia, por lo que los métodos se pueden referir directamente a ellas.
El método inicia() para establecer valores a las dos variables de instancia sería el siguiente:
void inicia( int paramX, int paramY ) {
 
  x = paramX;
 
  y = paramY;
 
}

No hay comentarios:

Publicar un comentario