Apuntes Lenguaje Java

4. Clases - Introducción

4.1. Clases
4.2. Objetos, miembros y referencias
4.3. Conceptos básicos. Resumen

4.1. Clases

Las clases son el mecanismo por el que se pueden crear nuevos Tipos en Java. Las clases son el punto central sobre el que giran la mayoría de los conceptos de la Orientación a Objetos. 

Una clase es una agrupación de datos y de código que actua sobre esos datos, a la que se le da un nombre. 

Una clase contiene:

bulletDatos (se denominan Datos Miembro). Estos pueden ser de tipos primitivos o referencias.
bulletMétodos (se denominan Métodos Miembro).

La sintaxis general para la declaración de una clase es:

modificadores class nombre_clase {
       declaraciones_de_miembros ;
}

Por ejemplo:

class Punto {
     int x;
     int y;
}

Los modificadores son palabras clave que afectan al comportamiento de la clase. Los iremos viendo progresivamente en los sucesivos capítulos.

4.2. Objetos, miembros y referencias

Un objeto es una instancia (ejemplar) de una clase. La clase es la definición general y el objeto es la materialización concreta (en la memoria del ordenador) de una clase.

El fenómeno de crear objetos de una clase se llama instanciación.

Los objetos se manipulan con referencias. Una referencia es una variable que apunta a un objeto. Las referencias se declaran igual que las variables de Tipos primitivos (tipo nombre). Los objetos se crean (se instancian) con el operador de instanciación new

Ejemplo:

Punto p;
p = new Punto();

La primera línea del ejemplo declara una referencia (p) que es de Tipo Punto. La referencia no apunta a ningún sitio. En la segunda línea se crea un objeto de Tipo Punto y se hace que la referencia p apunte a él. Se puede hacer ambas operaciones en la misma expresión:

 Punto p = new Punto();

A los miembros de un objeto se accede a través de su referencia. La sintaxis es:

nombre_referencia.miembro

En el ejemplo, se puede poner:

p.x = 1;
p.y = 3;

Se puede visualizar gráficamente los datos primitivos, referencias y objetos de la siguiente forma:

bullet

Datos primitivos: int i = 5;

bullet

Referencias y objetos:

Punto p = new Punto();
p.x = 1;
p.y = 3;

Es importante señalar que en el ejemplo, p no es el objeto. Es una referencia que apunta al objeto. 

Los métodos miembro se declaran dentro de la declaración de la clase, tal como se ha visto en el capítulo anterior. Por ejemplo:

class Circulo {
        Punto centro;   // dato miembro. Referencia a un objeto punto
        int radio;      // dato miembro. Valor primitivo
        float superficie() {                 // método miembro. 
                return 3.14 * radio * radio;
        }                                    // fin del método superficie
}                                            // fin de la clase Circulo

El acceso a métodos miembros es igual que el que ya se ha visto para datos miembro. En el ejemplo:

Circulo c = new Circulo();
c.centro.x = 2;
c.centro.y = 3;
c.radio = 5;
float s = c.superficie();

Es interesante observar en el ejemplo:

bullet

Los datos miembro pueden ser tanto primitivos como referencias. La clase Circulo contiene un dato miembro de tipo Punto (que es el centro del círculo).

bullet

El acceso a los datos miembros del Punto centro se hace encadenando el operador . en la expresión c.centro.x que se podría leer como 'el miembro x del objeto (Punto) centro del objeto (Circulo) c'.

bullet

Aunque el método superficie no recibe ningún argumento los paréntesis son obligatorios (Distinguen los datos de los métodos).

bullet

Existe un Objeto Punto para cada instancia de la clase Circulo (que se crea cuando se crea el objeto Circulo).

4.3. Conceptos básicos. Resumen

bullet

Una Clase es una definición de un nuevo Tipo, al que se da un nombre. 

bullet

Una Clase contiene Datos Miembro y Métodos Miembro que configuran el estado y las operaciones que puede realizar.

bullet

Un Objeto es la materialización (instanciación) de una clase. Puede haber tantos Objetos de una Clase como resulte necesario.

bullet

Los Objetos se crean (se les asigna memoria) con el Operador new.

bullet

Los Objetos se manipulan con Referencias. 

bullet

Una Referencia es una Variable que apunta a un Objeto. 

bullet

El acceso a los elementos de un Objeto (Datos o métodos) se hace con el operador . (punto) : nombre_referencia.miembro

Antonio Bel Puchol - antonio@abelp.net