Your SlideShare is downloading. ×
0
Clase3 Programación Orientada a Objetos
Clase3 Programación Orientada a Objetos
Clase3 Programación Orientada a Objetos
Clase3 Programación Orientada a Objetos
Clase3 Programación Orientada a Objetos
Clase3 Programación Orientada a Objetos
Clase3 Programación Orientada a Objetos
Clase3 Programación Orientada a Objetos
Clase3 Programación Orientada a Objetos
Clase3 Programación Orientada a Objetos
Clase3 Programación Orientada a Objetos
Clase3 Programación Orientada a Objetos
Clase3 Programación Orientada a Objetos
Clase3 Programación Orientada a Objetos
Clase3 Programación Orientada a Objetos
Clase3 Programación Orientada a Objetos
Clase3 Programación Orientada a Objetos
Clase3 Programación Orientada a Objetos
Clase3 Programación Orientada a Objetos
Clase3 Programación Orientada a Objetos
Clase3 Programación Orientada a Objetos
Clase3 Programación Orientada a Objetos
Clase3 Programación Orientada a Objetos
Clase3 Programación Orientada a Objetos
Clase3 Programación Orientada a Objetos
Clase3 Programación Orientada a Objetos
Clase3 Programación Orientada a Objetos
Clase3 Programación Orientada a Objetos
Clase3 Programación Orientada a Objetos
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Clase3 Programación Orientada a Objetos

811

Published on

Clase3 Programación Orientada a Objetos

Clase3 Programación Orientada a Objetos

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
811
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
32
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Programación Orientada a Objetos Universidad Centroccidental “Lisandro Alvarado” Decanato de Ciencias y Tecnología Análisis de Sistemas Departamento de Sistemas Programación Coordinación del Área de Programación Lapso 2013-1
  • 2. Programación Orientadas a Objetos Agenda Programación de Funciones Programación Orientada a Objetos (POO) Pilares de la Programación Orientada a Objetos Definición de Objeto Definición de Clase Representación de una Clase
  • 3. Programación Orientadas a Objetos UNIDAD II. Primera Parte Objetivo General Aplicar los conceptos básicos de la POO, la técnica de modelado orientado a objetos y la representación de las clases en un lenguaje de programación Objetivos Específicos • Aplicar los conceptos básicos de la Programación Orientada a Objetos (POO). • Identificar los pilares fundamentales de la programación orientada a objetos • Implementar Programación Orientada a Objetos usando la metodología de diseño.
  • 4. Programación de Funciones Función • Contiene una o más sentencias y se crean generalmente para realizar una única tarea. • En la Programación Orientada a Objetos, las funciones se utilizan para definir los métodos de las clases. Implementación de una Función: tipo_de_retorno NombreFuncion (lista parametros){ sentencias return valor; }
  • 5. Programación de Funciones Parámetros por valor • Cuando C++ compila la función y se ejecuta el código que llama a la función, ésta recibe una copia de los valores de los parámetros que se le pasan como argumentos. Parámetros por Referencia (&) • Cuando una función debe modificar el valor del parámetro pasado. En este método el compilador pasa la dirección de memoria del valor del parámetro a la función. Cuando se modifica el valor del parámetro esta queda almacenado en la misma dirección de memoria. Parámetros de una Función • Se conocen como Argumentos. • Una función puede utilizar parámetros por valor, por referencia, o puede no tener parámetros.
  • 6. Programación de Funciones Parámetros de una Función según Ubicación Parámetros Formales • Están en la definición de la función (cabecera). Parámetros Actuales • Están en cada llamada a una función. COMPATIBILIDAD ENTRE PARÁMETROS FORMALESY PARÁMETROS ACTUALES Regla Compatibilidad Debe cumplir con lo siguiente Misma cantidad Para N parámetros formales deben haber N parámetros actuales. Ej: si hay 3 parámetros en los formales, deben haber 3 en los actuales
  • 7. Programación de Funciones Parámetros de una Función según Ubicación COMPATIBILIDAD ENTRE PARÁMETROS FORMALESY PARÁMETROS ACTUALES Regla Compatibilidad Debe cumplir con lo siguiente Mismo tipo Deben ser parámetros del mismo tipo. Ej: Si en los formales hay un char y un int, igualmente deben haber un char y un int en los actuales Mismo orden Deben estar en el mismo orden. Ej: si en los formales hay un char y un int, y en los actuales hay un int y un char, ambos pares de parámetros tienen el mismo tipo pero no están en el mismo orden.
  • 8. Programación de Funciones Ejemplos de Funciones void ImprimirMensaje (string mensaje) { cout << mensaje << endl; } Llamado de la función ImprimirMensaje ImprimirMensaje (“Ingrese los siguientes datos:”); void LimpiarPantalla () { system (“cls”); } Llamado de las funciones anteriores LimpiarPantalla ();
  • 9. Programación de Funciones Ejemplos de Funciones void intercambio(int& m, int& n) { int aux=m; m= n; n= aux; } int i=3, j =50; cout<< “i = “<< i << “y j = “ << j << endl; // Llamado de la función intercambio intercambio (i, j); cout<< “i = “ << i << “y j = “ << j << endl;
  • 10. Programación Orientada a Objetos Es un paradigma de programación que usa objetos y sus interacciones, para diseñar aplicaciones y programas de computadora. Es una forma especial de programar, más cercana a como expresaríamos las cosas en la vida real. Se basa en la idea natural de la existencia de un mundo lleno de objetos, de modo que la resolución del problema se realiza en términos de objetos.
  • 11. Programación Orientada a Objetos Pilares Fundamentales de la POO
  • 12. Programación Orientada a Objetos Abstracción •Consiste en captar las características esenciales de un objeto, así como su comportamiento, al mismo tiempo que se ignoran los detalles no esenciales. •En programación, el término se refiere al énfasis en el "¿qué hace?" más que en el "¿cómo lo hace?“. Abstracción: ¿Qué es y que Hace? i. Sumamos los números y dividimos entre 3 Ejemplo: el proceso para calcular el promedio de 3 números puede explicarse así:
  • 13. Programación Orientada a Objetos No es Abstracción: ¿Cómo debe Implementarse? i. Declarar variables ii. Mostrar un mensaje en pantalla para pedir cada número iii. Leer los números iv. Asignarlos la suma a una variable Total v. Dividir el total entre 3 y asignarlo a la variable Promedio vi. Mostrar un mensaje en pantalla indicando que se presentará el resultado vii. Mostrar la variable Promedio.
  • 14. Programación Orientada a Objetos Encapsulamiento • Es una propiedad que ayuda a mantener juntos, en una única entidad, los atributos o propiedades (datos) y las funciones (métodos) que definen el comportamiento del objeto.
  • 15. Programación Orientada a Objetos Herencia • Es una propiedad que permite que los objetos sean creados a partir de otros ya existentes, obteniendo características (métodos y atributos) similares a los ya existentes. Jerarquía de clases de transportes
  • 16. Programación Orientada a Objetos Polimorfismo • Consiste en la posibilidad de definir en una jerarquía de clases métodos y/o atributos denominados de forma idéntica, pero que se comportan de manera distinta.
  • 17. Programación Orientada a Objetos ¿Qué es un Objeto? • Todo objeto del mundo real tiene 2 componentes: características (atributos) y comportamiento (métodos). Según Booch • Es algo que tiene estado, un comportamiento y una identidad. ¿Cuáles son sus Atributos? ¿Cuáles son sus Métodos?
  • 18. Programación Orientada a Objetos ¿Qué es un Clase? • Es la descripción de un conjunto de objetos; consta de métodos y atributos (datos) que resumen características comunes de un conjunto de objetos. • Cuando programamos un objeto y definimos sus características y funcionalidades en realidad lo que estamos haciendo es programando una clase.
  • 19. Programación Orientada a Objetos Elementos de una Clase Propiedades o atributos • Son las características de los objetos. Cuando definimos una propiedad normalmente especificamos su nombre y su tipo. • Las propiedades son algo así como variables donde almacenamos datos relacionados con los objetos. Métodos • Son las funcionalidades asociadas a los objetos, es decir, describen el comportamiento asociado a un objeto. • Las funciones (métodos) residen en el objeto y determinan como actuará éste cuando reciba un mensaje.
  • 20. Programación Orientada a Objetos Clases vs Objetos • Las clases son modelos o plantillas que describen como se construyen uno o más objetos del mismo tipo. • Cada vez que se construye un objeto de una clase, se crea una instancia de esa clase. Una instancia es una variable de tipo objeto. • Una clase puede tener muchas instancias y cada una es un objeto diferente. Consideraciones • Tanto para atributos como para métodos, en C++ hay tres modos principales de acceso: public, private, protected (público, privado y protegido).
  • 21. Programación Orientada a Objetos class NombreClase { private: //Visibilidad o Acceso Atributos public: //Visibilidad o Acceso Métodos }; Sintaxis para crear una Clase en C++ NombreClase NombreObjeto; Sintaxis para crear un Objeto en C++ NombreObjeto.Metodo(); Sintaxis para enviar un mensaje a un objeto en C++
  • 22. Clases y Objetos: Constructores Es un método especial que se ejecuta automáticamente al momento de la creación de un objeto; su propósito es la inicialización de los atributos del objeto, bien sea con valores predefinidos o con valores que se “pasan” al objeto a través de parámetros. Consideraciones • Se denominan exactamente igual que la clase. • Pueden haber varios constructores en una clase, con la diferenciación entre ellos de los argumentos que reciben (sobrecarga de métodos). • Para efectos de este curso, principalmente se usarán 2 constructores: (valores predeterminados, y otro que recibe los argumentos de inicialización). • En caso de que sea un constructor de inicialización predeterminado, colocarás valores base.
  • 23. Clases C++: Setters y Getters La función Set es un método que nos permite modificar el valor (asignar) de una variable privada (atributo) de una clase. La función Get es un método que nos permite visualizar el valor de una variable privada (atributo) de una clase, en otras palabras provee el valor del atributo a quien lo solicite. Consideraciones • Por cada atributo debería existir un Set y un Get. • Los Sets constituyen un método cuya única función será asignarle un valor a un atributo en particular, el cual viene por parámetro. Dado que no tiene que retornar valor, los Sets son procedimientos, o funciones void. • Los Gets son métodos que se invocarán para que retornen el valor de una atributo en particular, de manera que el tipo de retorno de cada Get dependerá del tipo del atributo.
  • 24. Identificación de Objetos • Una técnica a seguir para lograr la identificación de los objetos es subrayar cada sustantivo (nombre) presente en el planteamiento del problema. • Ejemplo: Dado la edad y la nacionalidad (si es venezolano o no) de un Joven. Determinar si el joven es admitido o no. Se sabe que es admitido siempre y cuando sea venezolano y su edad esté entre 18 y 21 años. Dado la edad y la nacionalidad (si es venezolano o no) de un Joven. Determinar si el joven es admitido o no. Se sabe que es admitido siempre y cuando sea venezolano y su edad esté entre 18 y 21 años. IDENTIFICACIÓN DE OBJETOS Y SUS COMPONENTES INFORMACIÓN DE ENTRADA : Edad y nacionalidad OBJETOS CANDIDATOS: Joven REQUERIMIENTOS: determinar si Es admitido o no el Joven IMPORTANTE: en ocasiones la información de entrada está implícita
  • 25. Programación de Objetos en C++ Un Programa Orientado a Objetos en C++, está compuesto por: • Varias librerías de uso genérico, bien sea las incorporadas al lenguaje o programadas por el usuario. • Una carpeta en el disco duro (o pendrive) con el nombre del proyecto. • Clases propias para el programa. Cada clase se almacena en 2 archivos: uno para la interfaz (extensión .h) y otro para la implementación (extensión .cpp). Estos archivos van dentro de la carpeta del proyecto Cada clase que se diseña tendrá 2 partes: • La interfaz: contiene solamente la declaración de los componentes de la clase, siguiendo la sintaxis de C++. • La implementación: contiene la programación de los métodos de la clase Nuestro ejemplo de Admisión requerirá al menos 3 Archivos: Joven.h, Joven.cpp y Principal.cpp
  • 26. Programa Orientado a Objetos C++:#ifndef JOVEN_H #define JOVEN_H #include <string> using namespace std; class Joven { private: int edad; bool venezolano; //1=si, 0=no public: Joven(); Joven (int, bool); void setEdad(int); void setVenezolano(bool); int getEdad(); bool getVenezolano(); bool EsAdmitido (); string RespAdmitido (); }; #endif #include "Joven.h“ Joven :: Joven (){} Joven :: Joven (int e, bool v){ edad = e; venezolano = v; } void Joven::setEdad(int e){ edad= e; } void Joven::setVenezolano(bool v){ venezolano = v; } int Joven::getEdad(){ return edad; } bool Joven::getVenezolano() { return venezolano; } bool Joven :: EsAdmitido (){ if ((venezolano) && (edad>=18 && edad<=21)) return 1; else return 0; } string Joven :: RespAdmitido (){ if (EsAdmitido ()) return "ADMITIDO"; else return "NO ADMITIDO"; } Joven.h (Interfaz) Joven.cpp(Implementación)
  • 27. Programa Orientado a Objetos C++#include <iostream> #include <cstdio> #include <cstdlib> #include "Joven.h” using namespace std; int main(){ int ed; char resp; Joven j; cout << "Edad del joven: " << endl; cin >> ed; cout << "Es venezolano (S-N): " << endl; cin >> resp; j.setEdad(ed); j.setVenezolano(resp == 's' or resp == 'S'); cout << "El joven es: " << endl; cout << j.RespAdmitido () << endl; system ("PAUSE"); return 0; } Principal.cpp
  • 28. Asignaciones Próxima Clase Repasar lo visto en Clase. Leer la Guía Didáctica de Introducción a la Programación Orientada a Objetos (POO). Realizar Ejercicios Propuestos.
  • 29. Referencias Bibliográficas • JOYANES, L y ZAHONERO, I. 2010. Programación en C, C++, JAVA y UML. Mc Graw Hill, Interamericana Editores, S.A. DE C.V. • JOYANES, L. 2006. Programación en C++. Algoritmos, estructuras de datos y objetos. 2a Edición. Mc Graw Hill, Interamericana de España, S.A.U.

×