Clases
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 asigna un nombre.
Una clase contiene:
- Datos (se denominan Datos Miembro). Estos pueden ser de tipos primitivos o referencias.
- Métodos (se denominan Métodos Miembro).
modificadores class nombre_clase {
declaraciones_de_miembros;
}
Por ejemplo:
declaraciones_de_miembros;
}
class Punto {
int x;
int y;
}
int x;
int y;
}
Los modificadores son palabras clave que afectan al comportamiento de la clase. Se irán viendo progresivamente en sucesivas entradas.
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.
Al fenómeno de crear objetos de una clase se le 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();
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();
Se accede a los miembros de un objeto 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 pueden visualizar gráficamente los datos primitivos, referencias y objetos de la siguiente forma:
p.y = 3;
- Datos primitivos: int i = 5;
- Referencias y objetos:
Punto p = new Punto();
p.x = 1;
p.y = 3;
p.x = 1;
p.y = 3;
Referencia que apunta al objeto. |
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 anteriormente. 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;
} }
El acceso a los métodos miembros es igual que el que ya se ha visto para datos miembro. En el ejemplo: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;
} }
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:c.centro.x = 2;
c.centro.y = 3;
c.radio = 5;
float s = c.superficie();
- 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).
- 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".
- Aunque el método superficie no recibe ningún argumento los paréntesis son obligatorios (Distinguen los datos de los métodos).
- Existe un Objeto Punto para cada instancia de la clase Circulo (que se crea cuando se crea el objeto Circulo).
Resumen (conceptos básicos)
- Una Clase es una definición de un nuevo Tipo, al que se le da un nombre.
- Una Clase contiene Datos Miembro y Métodos Miembro que configuran el estado y las operaciones que puede realizar.
- Un Objeto es la materialización (instanciación) de una clase. Puede haber tantos Objetos de una Clase como sea necesario.
- Los Objetos se crean (se les asigna memoria) con el Operador new.
- Los Objetos se manipulan con Referencias.
- Una Referencia es una Variable que apunta a un Objeto.
- El acceso a los elementos de un Objeto (Datos o métodos) se hace con el operador . (punto) : nombre_referencia.miembro.
REFERENCIAS:arrakis
0 Comentarios:
Dejar un comentario
Los comentarios están siendo moderados y serán publicados a la brevedad.