Clases

Post on 21-Jun-2015

1.390 views 3 download

Transcript of Clases

Programación

Orientada a

Objetos30 de Marzo de

2009

1. Definición de Clases

Cada clase contiene :

• Datos (datos miembro o campos), los cuales especifican las propiedades de los objetos.

• Funciones (funciones miembro o métodos), mediante los cuales se modela su comportamiento y las acciones que puede realizar.

1 // Declaración de una clase2 class MiClase3 {4 // Declaración de datos miembro5 // Declaración de métodos6 };

Un ejemplo de esto se puede apreciar en el siguiente fragmento de código:

En la declaración de una clase, para cada dato miembro, debe especificarse mediante los modificadores de acceso el ámbito desde el cual puede accederse a dicho miembro. Éstos son:

· Private: Sólo se permite su acceso desde los métodos de la clase.

· Public: Se permite su acceso desde cualquier punto que pueda usar la clase. Un dato público es accesible desde cualquier objeto de la clase.

· Protected: Se permite su uso en los métodos de la clase y en los de las clases derivadas mediante herencia.

2. Constructores y Destructores

Características de los constructores:

• Cuando se crea un objeto de una clase siempre se llama automáticamente a un constructor.

• Se emplea para iniciar los objetos de una clase.

• Es particularmente útil para reservar, si es necesario, memoria para ciertos campos del objeto.

• Pueden haber varios constructores para una clase.

• Un constructor tiene el mismo nombre que la clase en la que está declarado y no devuelve nada.

•Cuando no se define ningún constructor en una clase, el compilador crea un constructor por defecto, sin argumentos, que inicia los datos miembros a cero.

Características de los destructores:

• Sólo hay un destructor para una clase.

• Cuando un objeto deja de existir siempre se llama automáticamente al destructor.

• Un destructor tiene el mismo nombre de la clase, precedido por el carácter “~”.

• El destructor no admite parámetros ni devuelve ningún valor.

• Si no se especifica, el compilador proporciona un destructor por defecto. Su implementación tiene sentido sólo cuando el constructor ha reservado memoria dinámicamente.

Un ejemplo de esto se puede apreciar en el siguiente fragmento de código:

1 class MiClase2 {3 public:4 int *arreglo;56 // Constructor78 MiClase ()9 {10 arreglo = new int[10];11 }1213 // Destructor14 15 ~MiClase ()16 {17 delete [] arreglo;18 }19 };

3. Métodos

Características de la declaración de los métodos:

· Se declaran como cualquier función en C++.

· Se especifican los prototipos de los métodos en la declaración de la clase. Su implementación puede ser dentro de la declaración de la clase o en un archivo .cpp

• Es usual disponer de métodos públicos que modifican y/o leen el valor de los datos privados.

• Pueden definirse funciones privadas que pueden ser de utilidad (funciones auxiliares) para las funciones públicas.

El apuntador this es una variable predefinida en todas las funciones o métodos miembro de una clase.

Contiene la dirección del objeto concreto de la clase sobre la cual se está aplicando la función u operador miembro.

Al ser apuntador, el acceso a los miembros del objeto se realizará con el operador flecha (->).

4. Instanciación

Un objeto se puede crear de dos formas:

• Estática (el objeto existe mientras no se pierda alcance sobre él).

Sintaxis:

Nombre_de_clase variable_del_objeto;

• Dinámica (el objeto se crea en memoria dinámica, y existe mientras no sea eliminado explícitamente de ésta).

Sintaxis:

Nombre_de_clase *apuntador_al_objeto;apuntador_al_objeto = new Nombre_de_clase;