Clases
-
Upload
angelina-leal -
Category
Technology
-
view
1.390 -
download
3
Transcript of Clases
![Page 1: Clases](https://reader033.fdocuments.es/reader033/viewer/2022052600/5585fec5d8b42a5d068b4fed/html5/thumbnails/1.jpg)
Programación
Orientada a
Objetos30 de Marzo de
2009
![Page 2: Clases](https://reader033.fdocuments.es/reader033/viewer/2022052600/5585fec5d8b42a5d068b4fed/html5/thumbnails/2.jpg)
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](https://reader033.fdocuments.es/reader033/viewer/2022052600/5585fec5d8b42a5d068b4fed/html5/thumbnails/3.jpg)
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](https://reader033.fdocuments.es/reader033/viewer/2022052600/5585fec5d8b42a5d068b4fed/html5/thumbnails/4.jpg)
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](https://reader033.fdocuments.es/reader033/viewer/2022052600/5585fec5d8b42a5d068b4fed/html5/thumbnails/5.jpg)
· 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](https://reader033.fdocuments.es/reader033/viewer/2022052600/5585fec5d8b42a5d068b4fed/html5/thumbnails/6.jpg)
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](https://reader033.fdocuments.es/reader033/viewer/2022052600/5585fec5d8b42a5d068b4fed/html5/thumbnails/7.jpg)
• 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](https://reader033.fdocuments.es/reader033/viewer/2022052600/5585fec5d8b42a5d068b4fed/html5/thumbnails/8.jpg)
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](https://reader033.fdocuments.es/reader033/viewer/2022052600/5585fec5d8b42a5d068b4fed/html5/thumbnails/9.jpg)
• 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](https://reader033.fdocuments.es/reader033/viewer/2022052600/5585fec5d8b42a5d068b4fed/html5/thumbnails/10.jpg)
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](https://reader033.fdocuments.es/reader033/viewer/2022052600/5585fec5d8b42a5d068b4fed/html5/thumbnails/11.jpg)
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](https://reader033.fdocuments.es/reader033/viewer/2022052600/5585fec5d8b42a5d068b4fed/html5/thumbnails/12.jpg)
• 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](https://reader033.fdocuments.es/reader033/viewer/2022052600/5585fec5d8b42a5d068b4fed/html5/thumbnails/13.jpg)
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](https://reader033.fdocuments.es/reader033/viewer/2022052600/5585fec5d8b42a5d068b4fed/html5/thumbnails/14.jpg)
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](https://reader033.fdocuments.es/reader033/viewer/2022052600/5585fec5d8b42a5d068b4fed/html5/thumbnails/15.jpg)
• 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;