Poo

Preview:

DESCRIPTION

POO

Citation preview

UNIVERSIDAD VERACRUZANA

Tecnologías Computacionales

Introducción a la Programación

Programación Orientada a Objetos (POO)

Mtro. Alberto Jair Cruz Landaalbertojair1614@gmail.com

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

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

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

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

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

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

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

Ejemplos (1)

LibroCalificaciones

+ mostrarMensaje ()

Ejemplos (1)

Diagrama UML

Nombre de la clase

Función Miembro pública (+)

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

Ejemplos (2)

Ejemplos (2)

LibroCalificaciones

+ mostrarMensaje (nombreCurso : String)

Diagrama UML

Nombre de la clase

Función Miembro pública (+)

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

Ejemplos (3)

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

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)

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

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)

Ejemplos (5)

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)