Poo
-
Upload
albertojair1613 -
Category
Documents
-
view
322 -
download
0
description
Transcript of Poo
![Page 1: Poo](https://reader031.fdocuments.in/reader031/viewer/2022020418/5695d4c11a28ab9b02a29da0/html5/thumbnails/1.jpg)
UNIVERSIDAD VERACRUZANA
Tecnologías Computacionales
Introducción a la Programación
Programación Orientada a Objetos (POO)
Mtro. Alberto Jair Cruz [email protected]
![Page 2: Poo](https://reader031.fdocuments.in/reader031/viewer/2022020418/5695d4c11a28ab9b02a29da0/html5/thumbnails/2.jpg)
La Programación Orientada a Objetos, representa una nueva forma de pensar y deenfocarse en la solución de los problemas.
Las características principales son:
• Abstracción.
• Encapsulamiento.
• Herencia.
• Polimorfismo.
Características de la POO
![Page 3: Poo](https://reader031.fdocuments.in/reader031/viewer/2022020418/5695d4c11a28ab9b02a29da0/html5/thumbnails/3.jpg)
Algunas de las ventajas de la Programación Orientada a Objetos son:
• Abstracción.
• Encapsulamiento.
• Facilita la reutilización del código.
• Mayor legibilidad.
Ventajas de la POO
![Page 4: Poo](https://reader031.fdocuments.in/reader031/viewer/2022020418/5695d4c11a28ab9b02a29da0/html5/thumbnails/4.jpg)
Clases: Componente principal, que podría ser visto como una plantilla que define losatributos y métodos que son comunes para todos los objetos de un cierto tipo.
Objeto: Representa una entidad concreta o abstracta del mundo real, en programación sele denomina como una instancia de una clase (se crean durante la ejecución del programa).
Atributos: Representan las características relevantes del objeto.
Métodos: Son las funciones asociadas a los objetos.
Conceptos clave de la POO
![Page 5: Poo](https://reader031.fdocuments.in/reader031/viewer/2022020418/5695d4c11a28ab9b02a29da0/html5/thumbnails/5.jpg)
Al definir una clase se pueden establecer diferentes grados de seguridad para susmiembros, determinando de esta manera los posibles usuarios de los mismos. Las trescategorías de seguridad que maneja C++ son:
• Privada: Los miembros definidos en esta sección sólo se pueden acceder pormiembros de la misma clase.
• Protegida: Los miembros de la clase definidos en esta sección serán accedidossolamente por miembros de la misma clase y de sus clases derivadas.
• Pública: Atributos y métodos que estarán disponibles para cualquier cliente.
Tipos de acceso
![Page 6: Poo](https://reader031.fdocuments.in/reader031/viewer/2022020418/5695d4c11a28ab9b02a29da0/html5/thumbnails/6.jpg)
Al momento de programar con el paradigma Orientado a Objetos debemos pensar entérminos del mundo real (abstracción).
Pensando en POO
Dominio: Alumno universitario.
Datos: Representan las características más importan tes de todo alumno• Nombre: cadena de caracteres.• Dirección: cadena de caracteres.• Matrícula: número entero.• Año de ingreso: número entero.• Carrera: cadena de caracteres.• Promedio: número real.
Operaciones válidas: representan aquellas operacion es que se pueden realizar sobre o con los datos de un alumn o.o Constructor.• Actualizar Dirección.• Actualizar Carrea.• Actualizar Promedio
El Constructor: es una función que se ejecuta automáticamente al declarar un objeto como instancia de una clase; se escribe generalmente enla sección pública de una clase y su función es crear e iniciar un objeto del tipo de la clase en la cual fue definido. De esta manera, losconstructores permiten asegurar que los objetos, al crearse, se inicialicen con valores válidos
![Page 7: Poo](https://reader031.fdocuments.in/reader031/viewer/2022020418/5695d4c11a28ab9b02a29da0/html5/thumbnails/7.jpg)
La definición de una clase en C++ comienza con la palabra reservada class , seguida delnombre de la clase. El nombre elegido debe hacer referencia al concepto representado. Laclase puede tener tres tipos diferentes de secciones: privada, protegida y pública. En cadauna de estas secciones se podrían definir atributos y/o funciones de la clase.
class NombreClase{
private:atributos y/o funciones;
protected:atributos y/o funciones;
public:atributos y/o métodos;
};
Para declarar un objeto del tipo de la clase previamente definida, se emplea la siguientesintaxis:
NombreClase NombreObjeto;
Definición de Clase
![Page 8: Poo](https://reader031.fdocuments.in/reader031/viewer/2022020418/5695d4c11a28ab9b02a29da0/html5/thumbnails/8.jpg)
Presenta una clase llamada LibroCalificaciones, con una función miembro quesimplemente muestra un mensaje de bienvenida cuando se llama.
Ejemplos (1)
![Page 9: Poo](https://reader031.fdocuments.in/reader031/viewer/2022020418/5695d4c11a28ab9b02a29da0/html5/thumbnails/9.jpg)
LibroCalificaciones
+ mostrarMensaje ()
Ejemplos (1)
Diagrama UML
Nombre de la clase
Función Miembro pública (+)
![Page 10: Poo](https://reader031.fdocuments.in/reader031/viewer/2022020418/5695d4c11a28ab9b02a29da0/html5/thumbnails/10.jpg)
Modifica la clase LibroCalificaciones, con una función miembro que recibe el nombre deun curso como argumento.
Ejemplos (2)
![Page 11: Poo](https://reader031.fdocuments.in/reader031/viewer/2022020418/5695d4c11a28ab9b02a29da0/html5/thumbnails/11.jpg)
Ejemplos (2)
LibroCalificaciones
+ mostrarMensaje (nombreCurso : String)
Diagrama UML
Nombre de la clase
Función Miembro pública (+)
![Page 12: Poo](https://reader031.fdocuments.in/reader031/viewer/2022020418/5695d4c11a28ab9b02a29da0/html5/thumbnails/12.jpg)
El tercer ejemplo muestra cómo almacenar el nombre del curso en un objeto tipoLibroCalificaciones.
Ejemplos (3)
![Page 13: Poo](https://reader031.fdocuments.in/reader031/viewer/2022020418/5695d4c11a28ab9b02a29da0/html5/thumbnails/13.jpg)
Ejemplos (3)
LibroCalificaciones
- nombreCurso: String
+ establecerNombreCurso (nombre: String)+ obtenerNombreCurso () : String+ mostrarMensaje()
Diagrama UML
Nombre de la clase
Funciónes Miembro pública (+)
Datos miembro
Es importante lectura 116 pdf
![Page 14: Poo](https://reader031.fdocuments.in/reader031/viewer/2022020418/5695d4c11a28ab9b02a29da0/html5/thumbnails/14.jpg)
Demuestra cómo pueden inicializarse los datos en un objeto tipo LibroCalificaciones , a lahora de crear el objeto; la inicialización se lleva a cabo mediante una función miembroespecial, conocida como el constructor de la clase.
Ejemplos (4)
![Page 15: Poo](https://reader031.fdocuments.in/reader031/viewer/2022020418/5695d4c11a28ab9b02a29da0/html5/thumbnails/15.jpg)
Ejemplos (4)
LibroCalificaciones
- nombreCurso: String
<<constructor>> + LibroCalificaciones (nombre: String)
+ establecerNombreCurso (nombre: String)+ obtenerNombreCurso () : String+ mostrarMensaje()
Diagrama UML
Nombre de la clase
Funciónes Miembro pública (+)
Datos miembro
![Page 16: Poo](https://reader031.fdocuments.in/reader031/viewer/2022020418/5695d4c11a28ab9b02a29da0/html5/thumbnails/16.jpg)
Demuestra como colocar la clase LibroCalificaciones en un archivo separado parahabilitar la reutilización de software.
• Uno de los beneficios de crear definiciones de clases es que, cuando seempaquetan en forma apropiada, nuestras clases pueden ser reutilizadas por losprogramadores.
• La función main empieza la ejecución de todo programa, y cada programa debetener sólo una función main .
• Los ejemplos anteriores consisten de un solo archivo .cpp , el cual se conocetambién como archivo de código fuente , el cual contiene la definición de laclase LibroCalificaciones y una función main .
• Al construir un programa en C++ orientado a objetos, es costumbre definir elcódigo fuente reutilizable (como una clase) en un archivo que, por convención,tiene la extensión .h; a éste se le conoce como archivo de encabezado.
• En el presente ejemplo, separaremos el código en dos archivos:LibroCalificaciones.h y principal.cpp
Ejemplos (5)
![Page 17: Poo](https://reader031.fdocuments.in/reader031/viewer/2022020418/5695d4c11a28ab9b02a29da0/html5/thumbnails/17.jpg)
Ejemplos (5)
![Page 18: Poo](https://reader031.fdocuments.in/reader031/viewer/2022020418/5695d4c11a28ab9b02a29da0/html5/thumbnails/18.jpg)
La interfaz de la clase se separa de su implementación.
• La interfaz de una clase describe qué servicios pueden usar los clientes de laclase y cómo solicitar esos servicios, pero no cómo lleva a cabo la clase esosservicios.
• Una mejor ingeniería de software es definir las funciones miembro fuera de ladefinición de la clase, de manera que sus detalles de implementación se puedanocultar del código cliente.
• El programa separa la interfaz de LibroCalificaciones de su implementación;para ello divide la definición de la clase en dos archivos:
• LibroCalificaciones.h : Se define la clase
• LibroCalificaciones.cpp : se definen las funciones miembro de LibroCalificaciones.• Principal.cpp : define la función main.
Ejemplos (6)