Clases

15
Programaci ón Orientada a Objetos 30 de Marzo de 2009

Transcript of Clases

Page 1: Clases

Programación

Orientada a

Objetos30 de Marzo de

2009

Page 2: Clases

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.

Page 3: Clases

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:

Page 4: Clases

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:

Page 5: Clases

· 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.

Page 6: Clases

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.

Page 7: Clases

• 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.

Page 8: Clases

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 “~”.

Page 9: Clases

• 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.

Page 10: Clases

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 };

Page 11: Clases

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

Page 12: Clases

• 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.

Page 13: Clases

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 (->).

Page 14: Clases

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;

Page 15: Clases

• 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;