SlideShare a Scribd company logo
1 of 29
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
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
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.
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;
}
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.
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
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.
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 ();
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;
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.
Programación Orientada a
Objetos
Pilares Fundamentales de la POO
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í:
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.
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.
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
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.
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?
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.
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.
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).
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++
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.
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.
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
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
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)
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
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.
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.

More Related Content

What's hot

POO: Herencia, Abstraccion y Polimorfismo
POO: Herencia, Abstraccion y PolimorfismoPOO: Herencia, Abstraccion y Polimorfismo
POO: Herencia, Abstraccion y PolimorfismoActimel
 
Programación Orientada a Objetos - herencia y polimorfismo
Programación Orientada a Objetos - herencia y polimorfismoProgramación Orientada a Objetos - herencia y polimorfismo
Programación Orientada a Objetos - herencia y polimorfismoAlvaro Enrique Ruano
 
Constructores en Java
Constructores en JavaConstructores en Java
Constructores en JavaUCE
 
Persistencia de datos en Java
Persistencia de datos en JavaPersistencia de datos en Java
Persistencia de datos en JavaIker Canarias
 
Herencia - Programación Orientada a Objetos
Herencia - Programación Orientada a ObjetosHerencia - Programación Orientada a Objetos
Herencia - Programación Orientada a ObjetosMario Villaseñor
 
Tópicos Avanzados de Programación - Unidad 3 programacion concurrente
Tópicos Avanzados de Programación - Unidad 3 programacion concurrenteTópicos Avanzados de Programación - Unidad 3 programacion concurrente
Tópicos Avanzados de Programación - Unidad 3 programacion concurrenteJosé Antonio Sandoval Acosta
 
Análisis y diseño orientado a objetos
Análisis y diseño orientado a objetosAnálisis y diseño orientado a objetos
Análisis y diseño orientado a objetosChristian Leon
 
Estructura de datos - Unidad 1: Introducción a las estructuras de datos
Estructura de datos - Unidad 1: Introducción a las estructuras de datosEstructura de datos - Unidad 1: Introducción a las estructuras de datos
Estructura de datos - Unidad 1: Introducción a las estructuras de datosJosé Antonio Sandoval Acosta
 
Paquetes De Programacion
Paquetes De ProgramacionPaquetes De Programacion
Paquetes De Programaciontibu85
 
P. estructurada vs. programación orientada a objetos
P. estructurada vs. programación orientada a objetosP. estructurada vs. programación orientada a objetos
P. estructurada vs. programación orientada a objetosGeovanny Yungán
 
Componentes y Librerías - Tópicos avanzados de programación.
Componentes y Librerías - Tópicos avanzados de programación.Componentes y Librerías - Tópicos avanzados de programación.
Componentes y Librerías - Tópicos avanzados de programación.Giancarlo Aguilar
 
Patrón de diseño Modelo-Vista-Controlador (MVC)
Patrón de diseño Modelo-Vista-Controlador (MVC)Patrón de diseño Modelo-Vista-Controlador (MVC)
Patrón de diseño Modelo-Vista-Controlador (MVC)Jose R. Hilera
 
Glosario Términos De JAVA
Glosario Términos De JAVAGlosario Términos De JAVA
Glosario Términos De JAVAStiven Rocha
 

What's hot (20)

POO: Herencia, Abstraccion y Polimorfismo
POO: Herencia, Abstraccion y PolimorfismoPOO: Herencia, Abstraccion y Polimorfismo
POO: Herencia, Abstraccion y Polimorfismo
 
Programación Orientada a Objetos - herencia y polimorfismo
Programación Orientada a Objetos - herencia y polimorfismoProgramación Orientada a Objetos - herencia y polimorfismo
Programación Orientada a Objetos - herencia y polimorfismo
 
Constructores en Java
Constructores en JavaConstructores en Java
Constructores en Java
 
Persistencia de datos en Java
Persistencia de datos en JavaPersistencia de datos en Java
Persistencia de datos en Java
 
Arboles Binarios
Arboles BinariosArboles Binarios
Arboles Binarios
 
Arreglos c++
Arreglos c++Arreglos c++
Arreglos c++
 
Herencia - Programación Orientada a Objetos
Herencia - Programación Orientada a ObjetosHerencia - Programación Orientada a Objetos
Herencia - Programación Orientada a Objetos
 
Tópicos Avanzados de Programación - Unidad 3 programacion concurrente
Tópicos Avanzados de Programación - Unidad 3 programacion concurrenteTópicos Avanzados de Programación - Unidad 3 programacion concurrente
Tópicos Avanzados de Programación - Unidad 3 programacion concurrente
 
Análisis y diseño orientado a objetos
Análisis y diseño orientado a objetosAnálisis y diseño orientado a objetos
Análisis y diseño orientado a objetos
 
Tópicos Avanzados de Programación - Unidad 1 GUI
Tópicos Avanzados de Programación - Unidad 1 GUITópicos Avanzados de Programación - Unidad 1 GUI
Tópicos Avanzados de Programación - Unidad 1 GUI
 
Razonamiento monotono
Razonamiento monotonoRazonamiento monotono
Razonamiento monotono
 
6 Curso de POO en Java - clases y objetos
6  Curso de POO en Java - clases y objetos6  Curso de POO en Java - clases y objetos
6 Curso de POO en Java - clases y objetos
 
Estructura de datos - Unidad 1: Introducción a las estructuras de datos
Estructura de datos - Unidad 1: Introducción a las estructuras de datosEstructura de datos - Unidad 1: Introducción a las estructuras de datos
Estructura de datos - Unidad 1: Introducción a las estructuras de datos
 
Paquetes De Programacion
Paquetes De ProgramacionPaquetes De Programacion
Paquetes De Programacion
 
P. estructurada vs. programación orientada a objetos
P. estructurada vs. programación orientada a objetosP. estructurada vs. programación orientada a objetos
P. estructurada vs. programación orientada a objetos
 
Componentes y Librerías - Tópicos avanzados de programación.
Componentes y Librerías - Tópicos avanzados de programación.Componentes y Librerías - Tópicos avanzados de programación.
Componentes y Librerías - Tópicos avanzados de programación.
 
Patrón de diseño Modelo-Vista-Controlador (MVC)
Patrón de diseño Modelo-Vista-Controlador (MVC)Patrón de diseño Modelo-Vista-Controlador (MVC)
Patrón de diseño Modelo-Vista-Controlador (MVC)
 
Glosario Términos De JAVA
Glosario Términos De JAVAGlosario Términos De JAVA
Glosario Términos De JAVA
 
Metodologia orientada a objeto
Metodologia orientada a objetoMetodologia orientada a objeto
Metodologia orientada a objeto
 
P.O.O.
P.O.O.P.O.O.
P.O.O.
 

Viewers also liked

Paradigma Orientado a Objetos
Paradigma Orientado a ObjetosParadigma Orientado a Objetos
Paradigma Orientado a ObjetosNestor Traña
 
Programación Orientada a Objeto y Java
Programación Orientada a Objeto y JavaProgramación Orientada a Objeto y Java
Programación Orientada a Objeto y JavaIngeniería Nica
 
Introduccion al paradigma de la programacion orientado a objetos original
Introduccion al paradigma de la programacion orientado a objetos originalIntroduccion al paradigma de la programacion orientado a objetos original
Introduccion al paradigma de la programacion orientado a objetos originalJose Angel Rodriguez
 
programacion orientada a objetos
programacion orientada a objetosprogramacion orientada a objetos
programacion orientada a objetosJavier Camacho
 
Programación Orientada a Objetos vs Programación Estructurada
Programación Orientada a Objetos vs Programación EstructuradaProgramación Orientada a Objetos vs Programación Estructurada
Programación Orientada a Objetos vs Programación EstructuradaMichael de la Cruz
 
Conceptos de POO (Programacion Orientada a Objetos)
Conceptos de POO (Programacion Orientada a Objetos)Conceptos de POO (Programacion Orientada a Objetos)
Conceptos de POO (Programacion Orientada a Objetos)Josue Lara Reyes
 
Introducción a Programación Orientada a Objetos (OOP): Clases y Objetos
Introducción a  Programación Orientada a Objetos (OOP): Clases y ObjetosIntroducción a  Programación Orientada a Objetos (OOP): Clases y Objetos
Introducción a Programación Orientada a Objetos (OOP): Clases y ObjetosKudos S.A.S
 
Instructoria de Herencia en java
Instructoria de Herencia en javaInstructoria de Herencia en java
Instructoria de Herencia en javaJavier
 
Analisis orientado a objetos
Analisis orientado a objetosAnalisis orientado a objetos
Analisis orientado a objetosvilma pilco
 
02 Bases Del Lenguaje Java
02   Bases Del Lenguaje Java02   Bases Del Lenguaje Java
02 Bases Del Lenguaje JavaNetwork Sens
 
06 Paquetes Y Java Classpath
06   Paquetes Y Java Classpath06   Paquetes Y Java Classpath
06 Paquetes Y Java ClasspathNetwork Sens
 
Programación orientada a objetos
Programación orientada a objetosProgramación orientada a objetos
Programación orientada a objetosVanessa Vaca
 

Viewers also liked (20)

Paradigma Orientado a Objetos
Paradigma Orientado a ObjetosParadigma Orientado a Objetos
Paradigma Orientado a Objetos
 
Programación Orientada a Objeto y Java
Programación Orientada a Objeto y JavaProgramación Orientada a Objeto y Java
Programación Orientada a Objeto y Java
 
Introduccion al paradigma de la programacion orientado a objetos original
Introduccion al paradigma de la programacion orientado a objetos originalIntroduccion al paradigma de la programacion orientado a objetos original
Introduccion al paradigma de la programacion orientado a objetos original
 
programacion orientada a objetos
programacion orientada a objetosprogramacion orientada a objetos
programacion orientada a objetos
 
Programación Orientada a Objetos vs Programación Estructurada
Programación Orientada a Objetos vs Programación EstructuradaProgramación Orientada a Objetos vs Programación Estructurada
Programación Orientada a Objetos vs Programación Estructurada
 
Conceptos de POO (Programacion Orientada a Objetos)
Conceptos de POO (Programacion Orientada a Objetos)Conceptos de POO (Programacion Orientada a Objetos)
Conceptos de POO (Programacion Orientada a Objetos)
 
Introducción a Programación Orientada a Objetos (OOP): Clases y Objetos
Introducción a  Programación Orientada a Objetos (OOP): Clases y ObjetosIntroducción a  Programación Orientada a Objetos (OOP): Clases y Objetos
Introducción a Programación Orientada a Objetos (OOP): Clases y Objetos
 
Poo en java herencia
Poo en java   herenciaPoo en java   herencia
Poo en java herencia
 
Instructoria de Herencia en java
Instructoria de Herencia en javaInstructoria de Herencia en java
Instructoria de Herencia en java
 
Programación Orientada Objetos Java Unidad 1
Programación Orientada Objetos Java Unidad 1Programación Orientada Objetos Java Unidad 1
Programación Orientada Objetos Java Unidad 1
 
Cafeteando east
Cafeteando eastCafeteando east
Cafeteando east
 
Entrega final
Entrega finalEntrega final
Entrega final
 
Analisis orientado a objetos
Analisis orientado a objetosAnalisis orientado a objetos
Analisis orientado a objetos
 
02 Bases Del Lenguaje Java
02   Bases Del Lenguaje Java02   Bases Del Lenguaje Java
02 Bases Del Lenguaje Java
 
06 Paquetes Y Java Classpath
06   Paquetes Y Java Classpath06   Paquetes Y Java Classpath
06 Paquetes Y Java Classpath
 
Tutorial eclipse 1
Tutorial eclipse 1Tutorial eclipse 1
Tutorial eclipse 1
 
FPJUCE - Capitulo2
FPJUCE - Capitulo2FPJUCE - Capitulo2
FPJUCE - Capitulo2
 
13 Networking
13   Networking13   Networking
13 Networking
 
Conceptos de la poo
Conceptos de la pooConceptos de la poo
Conceptos de la poo
 
Programación orientada a objetos
Programación orientada a objetosProgramación orientada a objetos
Programación orientada a objetos
 

Similar to Clase3 Programación Orientada a Objetos

Ingeniería de requerimientos i
Ingeniería de requerimientos iIngeniería de requerimientos i
Ingeniería de requerimientos iPablo Macon
 
10. programación orientada a objetos (java)
10. programación orientada a objetos (java)10. programación orientada a objetos (java)
10. programación orientada a objetos (java)Eric Martinez Aguilar
 
Conceptos básicos de programación orientada a objetos (poo)
Conceptos básicos de programación orientada a objetos (poo)Conceptos básicos de programación orientada a objetos (poo)
Conceptos básicos de programación orientada a objetos (poo)Maria Garcia
 
Elemtos de programacion
Elemtos de programacionElemtos de programacion
Elemtos de programacionpepepaso
 
Lenguajesdeprogramacion c nivel2-unidad4-01-introduccion a la poo
Lenguajesdeprogramacion c nivel2-unidad4-01-introduccion a la pooLenguajesdeprogramacion c nivel2-unidad4-01-introduccion a la poo
Lenguajesdeprogramacion c nivel2-unidad4-01-introduccion a la pooJacki Wan
 
¡PROGRAMACION ORIENDA AL OBJETO! (POO) ppt
¡PROGRAMACION ORIENDA AL OBJETO! (POO) ppt¡PROGRAMACION ORIENDA AL OBJETO! (POO) ppt
¡PROGRAMACION ORIENDA AL OBJETO! (POO) pptsebastian128874
 
03 -fundamentos_de_la_tecnologia_orientada_a_objetos
03  -fundamentos_de_la_tecnologia_orientada_a_objetos03  -fundamentos_de_la_tecnologia_orientada_a_objetos
03 -fundamentos_de_la_tecnologia_orientada_a_objetoskarlalopezbello
 
Primeraclaseobjetos Clases
Primeraclaseobjetos ClasesPrimeraclaseobjetos Clases
Primeraclaseobjetos Clasesmtemarialuisa
 
Primeraclaseobjetos Clases
Primeraclaseobjetos ClasesPrimeraclaseobjetos Clases
Primeraclaseobjetos Clasesmtemarialuisa
 
1. introduccion a la programación orientada a objeto (poo)
1.  introduccion a la programación orientada a objeto (poo)1.  introduccion a la programación orientada a objeto (poo)
1. introduccion a la programación orientada a objeto (poo)Roberto Rojas
 

Similar to Clase3 Programación Orientada a Objetos (20)

3_Orientación a objeto
3_Orientación a objeto3_Orientación a objeto
3_Orientación a objeto
 
Ingeniería de requerimientos i
Ingeniería de requerimientos iIngeniería de requerimientos i
Ingeniería de requerimientos i
 
Programación Orientada a Objetos
Programación Orientada a ObjetosProgramación Orientada a Objetos
Programación Orientada a Objetos
 
Poo
PooPoo
Poo
 
10. programación orientada a objetos (java)
10. programación orientada a objetos (java)10. programación orientada a objetos (java)
10. programación orientada a objetos (java)
 
Cuaderno
CuadernoCuaderno
Cuaderno
 
Cuaderno
CuadernoCuaderno
Cuaderno
 
Conceptos básicos de programación orientada a objetos (poo)
Conceptos básicos de programación orientada a objetos (poo)Conceptos básicos de programación orientada a objetos (poo)
Conceptos básicos de programación orientada a objetos (poo)
 
Elemtos de programacion
Elemtos de programacionElemtos de programacion
Elemtos de programacion
 
Primeraclaseobjetos clases
Primeraclaseobjetos clasesPrimeraclaseobjetos clases
Primeraclaseobjetos clases
 
P.O.O.
P.O.O.P.O.O.
P.O.O.
 
Lenguajesdeprogramacion c nivel2-unidad4-01-introduccion a la poo
Lenguajesdeprogramacion c nivel2-unidad4-01-introduccion a la pooLenguajesdeprogramacion c nivel2-unidad4-01-introduccion a la poo
Lenguajesdeprogramacion c nivel2-unidad4-01-introduccion a la poo
 
¡PROGRAMACION ORIENDA AL OBJETO! (POO) ppt
¡PROGRAMACION ORIENDA AL OBJETO! (POO) ppt¡PROGRAMACION ORIENDA AL OBJETO! (POO) ppt
¡PROGRAMACION ORIENDA AL OBJETO! (POO) ppt
 
Programación Orientada a Objetos
Programación Orientada a ObjetosProgramación Orientada a Objetos
Programación Orientada a Objetos
 
03 -fundamentos_de_la_tecnologia_orientada_a_objetos
03  -fundamentos_de_la_tecnologia_orientada_a_objetos03  -fundamentos_de_la_tecnologia_orientada_a_objetos
03 -fundamentos_de_la_tecnologia_orientada_a_objetos
 
Primeraclaseobjetos Clases
Primeraclaseobjetos ClasesPrimeraclaseobjetos Clases
Primeraclaseobjetos Clases
 
Primeraclaseobjetos Clases
Primeraclaseobjetos ClasesPrimeraclaseobjetos Clases
Primeraclaseobjetos Clases
 
poo+neohj.pptx
poo+neohj.pptxpoo+neohj.pptx
poo+neohj.pptx
 
1. introduccion a la programación orientada a objeto (poo)
1.  introduccion a la programación orientada a objeto (poo)1.  introduccion a la programación orientada a objeto (poo)
1. introduccion a la programación orientada a objeto (poo)
 
Principios poo
Principios pooPrincipios poo
Principios poo
 

Recently uploaded

Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfJulian Lamprea
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudianteAndreaHuertas24
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxLolaBunny11
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 

Recently uploaded (13)

Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdf
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptx
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 

Clase3 Programación Orientada a Objetos

  • 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.