18
UNIVERSIDAD VERACRUZANA Tecnologías Computacionales Introducción a la Programación Programación Orientada a Objetos (POO) Mtro. Alberto Jair Cruz Landa [email protected]

Poo

Embed Size (px)

DESCRIPTION

POO

Citation preview

Page 1: Poo

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

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

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

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

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

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

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

Presenta una clase llamada LibroCalificaciones, con una función miembro quesimplemente muestra un mensaje de bienvenida cuando se llama.

Ejemplos (1)

Page 9: Poo

LibroCalificaciones

+ mostrarMensaje ()

Ejemplos (1)

Diagrama UML

Nombre de la clase

Función Miembro pública (+)

Page 10: Poo

Modifica la clase LibroCalificaciones, con una función miembro que recibe el nombre deun curso como argumento.

Ejemplos (2)

Page 11: Poo

Ejemplos (2)

LibroCalificaciones

+ mostrarMensaje (nombreCurso : String)

Diagrama UML

Nombre de la clase

Función Miembro pública (+)

Page 12: Poo

El tercer ejemplo muestra cómo almacenar el nombre del curso en un objeto tipoLibroCalificaciones.

Ejemplos (3)

Page 13: Poo

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

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

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

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

Ejemplos (5)

Page 18: Poo

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)