SlideShare a Scribd company logo
1 of 40
LOGO
Ing. Mary Lopez
Programacion II
PROGRAMACION
ORIENTADA A OBJETOS
Universidad Autónoma Gabriel Rene Moreno
FICCT
Semestre I/2018
Objetivos
1. Conocer y Entender los conceptos fundamentales
de la Programación orientada a objetos.
2. Aplicar los conceptos de POO para el diseño y
programación.
3. Analizar los diferentes niveles de reutilización que
permite la POO.
Palabras Clave
• Objetos y Clases
• Atributos
• Mensajes y Métodos
• Encapsulamiento y ocultamiento
• Interfaces
• Herencia de clases
• Polimorfismo
• Composición de Objetos
Contenido
Introducción1
Conceptos Básicos2
Diagrama de Clases
4 Taller 1: Identificar Objetos y Clases
3
Taller 2: Diagrama de Clases5
6 Taller 3: Implementación en C++6
1. INTRODUCCIÓN
Preliminar
Beneficios
Que es Poo ?
- Frecuentemente
sigue el método
de resolución de
problemas de la
vida real.
Preliminar
P.O.O
- El análisis y
diseño OO modela
el mundo en
función a objetos
con: algún estado,
comportamiento y
determinados
eventos.
Reutilización
(herencia)
Integridad
(Encapsula)
Programas
mas sencillos
Beneficios?
Pensar en
Objetos
- Organización de los
programas tratando de
representar el mundo
real.
- Un programa se
compone de un conjunto
de objetos que
interactúan por
mensajes.
- Cada objeto es una
abstracción del mundo
real y realiza una única
tarea.
¿Que es POO?
- Interesa que se
puede hacer con
los objetos mas
que como se
hace.
- Cada objeto es
un ejemplar de
una clase.
- Las clases se
pueden organizar
en una jerarquía
de herencia.
2. CONCEPTOS BASICOS
Definición
(Booch)
Pilares de la
Poo
Abstracción
(Que es mas importante que el Como)
Encapsulamiento
(Atributos + Métodos)
Ocultamiento
( 3 Niveles)
Modularidad
Herencia
(Derivación)
Polimorfismo
(2 tipos)
La POO es el método de implementación en el que los
programas se organizan como colecciones cooperativas
de objetos, cada uno de los cuales representa un
ejemplar de una clase y cuyas clases son miembros de
una jerarquía de clases unidas mediante relaciones de
herencia
.
2.1 Definición de Booch
 La unidad lógica de
programación es el objeto.
 Los objetos tienen
relaciones.
 Los objetos con
características idénticas
serán una Clase.
 Las clases pertenecen a una
jerarquía (son las clases las
que heredan y no los
objetos).
2.2 Pilares de la Poo
2.2.1 Abstracción
 Es el conocimiento que se tiene de una cosa prescindiendo de
las demás que estén con ella.
 La abstracción localiza y oculta los detalles de un modelo o
diseño para generar y manipular objetos
 Se puede conocer un objeto observando sin necesidad de ver su
interior, su implementación o su forma de construcción.
 Existen dos tipos de abstracción: de datos y funcional.
La abstracción
se enfoca a la
vista exterior de
un objeto
«Este objeto es ….»
Abstracción de datos
Es utilizar los datos sin
preocuparse por los
detalles de su
implementación, lo
importante es saber que
tipo de información se
puede utilizar y no como
está almacenado
Abstracción Funcional
Es saber que es lo que hace
un determinado proceso,
pero no como lo hace.
Por ejemplo el proceso
Buscar de la clase Lista, se
sabe que buscara un
elemento sin importar como
lo hará.
Que Atributo
Como  Campo
Que  Método
Como  Algoritmo
 Identificar los objetos principales
 Definir atributos y métodos principales de cada objeto
 Clasificar los objetos según sus semejanzas y diferencias
 Establecer como se relacionan y como se comunican entre si
(eventos)
2.2.2 Encapsulamiento
 Es el resultado de ocultar los detalles
de implementación  (estado interno)
de un objeto respecto de su usuario
 El empaque conjunto de datos y
métodos se llama encapsulación
 El objeto esconde (protege) sus datos
de los demás objetos y permite el
acceso a los datos mediante sus
propios métodos. Esto es lo que se
llaman ocultamiento de la información
y evita la corrupción de los datos de un
objeto.
 Este pilar de POO
definitivamente facilita el
cambio y mejora la modularidad
El encapsulamiento
permite a otros objetos
ver su interior «Este
objeto tiene …»
Ocultamiento
 Consiste en no permitir el acceso a los
componentes de una clases :atributos
y métodos
 Esto se logra con la visibilidad que
ofrecen los lenguajes de programación.
 Privado: Solo los miembros de la clase tienen
acceso
 Protegido: Solo los miembros de la clase y sus
derivados tienen acceso
 Público: Todos tienen acceso
2.2.3 Modularidad
 Este concepto ya viene desde la
programación estructurada, y se refiere al
hecho de realizar un programa por partes,
a las cuales se las denomina módulos.
 Un módulo es un archivo que contiene un
conjunto de declaraciones y/o procesos.
 Una Clase será un modulo independiente.
2.2.4 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.
El gato y el Perro
tendrían la
herencia (métodos
y atributos) del
Mamífero.
Mamífero
Gato Perro
Es la capacidad de crear nuevas clases basándose en
clases previamente definidas, de las que se aprovechan
ciertos datos y métodos, se desechan otros y se añaden
nuevos.
Lista
Pila
Cola
Simple
Empleado
Amiga
Madre
Mujer
Multiple
2.2.5 Polimorfismo
 Es la capacidad que tienen los objetos de una clase
de responder al mismo mensaje o evento de acuerdo
a los parámetros utilizados durante su invocación.
 Hay dos tipos:
• Dinámico: es el que el código no incluye ningún
tipo de especificación sobre el tipo de datos.
 TEMPLATE
• Estático: es el que los tipos a los que se aplica el
polimorfismo deben ser explícitamente indicados y
declarados uno por uno antes de ser utilizados.
 proceso VS función.
3. DIAGRAMA DE CLASES
Diagrama de
Clases
Partes del DC
Clase Objeto
Atributos
Método
Herencia
Generalización
Especialización
Relación entre
clases
Asociación
La Clase
asociación
Asociación
Reflexiva
Agregación Composición
• Es en realidad un complemento de UML
(Lenguaje Unificado de Modelado: estándar
para describir un "plano" del sistema)
• Representa un lenguaje gráfico para
visualizar, especificar, construir y documentar
un sistema.
• Representa las clases, sus partes y la forma
en la que las clases de los objetos están
relacionados uno con otro.
• Es la fuente de generación de código.
Los Diagramas de Clase
Partes de un DC
 Clases: Una clase es una definición de un tipo de objeto. Es una
descripción generalizada de un conjunto de objetos similares
• Atributos: describe las características de una clase de
objetos.
• Métodos: define el comportamiento de una clase de objetos
 Herencia: Permite organizar las definiciones de la clase
para simplificar y facilitar su implementación.
 Relación entre clases: Es un término formal para un tipo
de relación.
3.1 Clase
 Es la descripción de un conjunto de objetos que
comparten una estructura ( atributos, operaciones,
relaciones y semántica) y un comportamiento.
 La estructura de un objeto se define en su clase, por
lo que un objeto es en realidad la instancia de una
clase
 Luis Joyanes Aguilar
“Una Clase es un tipo definido por el
usuario(programador) que determina las
estructuras de datos y las operaciones
asociadas con este tipo”
3.1.1 Objeto
 Entidad que contiene los atributos que describen el estado de un
objeto del mundo real y las acciones que se asocian con el
objeto del mundo real.
 Un objeto es designado con un nombre o un identificador.
 Los datos deberían estar ocultos en el objeto, y las operaciones
serían el interface del objeto con el exterior, pero estas
operaciones están encapsuladas en "cajas negras".
OBJETO = DATOS + OPERACIONES
Taylor
Jourdon Booch
3.1.2 Elementos de un Objeto
1. Atributos
 Son las características que definen a la clase, es lo que el usuario
(de la clase) puede ver. Es la abstracción.
 Son variables que están dentro de los objetos. También son
llamados: propiedades o datos miembro.
Ejemplo: La Fecha definido por 3 datos dia, mes y año
2. Método
 Es la forma en que actúa y reacciona ante sus cambios de estado
e intercambio de mensajes con otros objetos.
 Son los procesos (funciones o procedimientos) que permiten
trabajar con los datos de los objetos.
 La visibilidad de una función viene dada por:
 Public (+) permite el acceso desde otras clases.
 Private (-) limita el acceso a la clase, solo operaciones de la clase tienen
acceso.
 Protected (#) permite el acceso por las subclases. En el caso de
generalización (herencia), las subclases deben tener acceso a los atributos
y operaciones de la superclase, por ello se los define con protected..
3.2 Herencia
E
S
P
E
C
I
A
L
I
Z
A
C
I
O
N
G
E
N
E
R
A
L
I
Z
A
C
I
O
N
IDENTIFICANDO RELACIONES DE
HERENCIA
Generalización Vs Especialización
• Cuando dos clases tienen atributos en común se
debe analizar la relación que guardan entre si:
 Las clases con atributos en común pueden conformar una
superclase  Una superclase es entonces la
generalización de varias subclases.
 De una clase puede derivarse otra llamada Subclase.
Asociación: Es una relación semántica (significativa)
entre objetos. Cuando un objeto accede a los atributos y
métodos de otro objeto estamos definiendo una
asociación entre ellos.
Agregación: Es una relación que define que un objeto es
parte de otro objeto. Cuando definimos que un objeto
tiene como atributo otro objeto decimos que es una
agregación. A través de la agregación se definen objetos
compuestos.
3.3 Relación entre clases
3.3.1 Asociaciones entre Clases
Es una relación entre instancias(objetos) de clases,
especificando que los objetos de una clase deben
“conocer'' de alguna manera los objetos de la otra.
El mensaje es el modo en que se comunican e
interrelacionan los objetos entre si.
Por ejemplo:
 Un objeto de la clase X envía un mensaje a un objeto
de la clase Y.
 Un objeto de la clase Y crea un objeto de la clase X.
 Un objeto de la clase X recibe un mensaje con un
objeto de la clase Z como argumento
Simbología
• El nombre de la Asociación va debajo
de la línea que la representa.
• Una flecha rellena indica la dirección
de la relación
• Los roles se ubican cerca del final de
la asociación. Estos representan la
manera en que dos clases se ven
entre ellas.
• Normalmente no se ponen el nombre
de la asociación y los roles.
• Cuando la asociación es calificada, el
símbolo correspondiente se coloca al
final de la asociación, contra la clase
que hace de calificador.
• Un calificador en una asociación que
resuelve el problema de la búsqueda. En
el UML la información de identidad se
conoce como calificador, su símbolo es un
pequeño rectángulo adjunto a la clase que
hará la búsqueda-
Multiplicidad
• Las notaciones utilizadas
para señalar la
multiplicidad se colocan
cerca del final de una
asociación.
• Estos símbolos indican el
numero de instancias de
una clase vinculadas a una
de las instancias de la otra
clase
• Por ejemplo: Una
empresa puede tener uno
o mas empleados, pero
cada empleado trabaja
para una sola empresa.
Navegabilidad
 Representa asociaciones bidireccionales (ambos sentidos) o
unidireccionales(un solo sentido).
 La navegabilidad bidireccional se representa con una línea
 La navegabilidad unidireccional se expresa con una punta de
flecha abierta puesta en el lado de la clase a la que se llega.
 La clase Fecha no tiene información de la clase Socio por lo que
la navegabilidad desde la clase Fecha no es posible.
 Sin embargo, la clase Socio tiene una referencia a la clase
Fecha por lo que si es viable la navegabilidad en este sentido.
La Clase Asociación
 Cuando se modela una asociación entre clases, a veces es
necesario incluir otra clase que contiene información valiosa
acerca de la relación.
 La siguiente figura muestra una clase asociación para el
ejemplo de los vuelos.
La asociación entre la clase Flight y FrequentFlyer es a través de
una clase llamada MileageCredit. Obsérvese que esto se da en
asociaciones Muchos a Muchos en las que es necesario
almacenar cierta información derivado de la asociación.
Asociación Reflexiva
 Una clase puede asociarse con sí
misma. Una clase Empleado puede
relacionarse con sí misma a través del
rol gerente/dirige.
 No significa que una instancia está
relacionada consigo misma, sino que
una instancia de la clase está
relacionada con otra instancia de la
misma clase.
 Una instancia de Employee puede ser
el gerente de otras instancias de
Employee. Como el rol manages tiene
una multiplicidad de 0…*, significa que
puede no tener otros empleados a
quien dirigir.
Una instancia de Employee tiene 1
sólo gerente ó un solo director.
3.3.2 Agregación Básica
 Es un tipo especial de asociación utilizado para modelar una
relación “whole to its parts”.
 Por ejemplo, Coche es una entidad “whole” y Llanta es una
parte del Coche.
 Una asociación con una agregación indica que una clase es
parte de otra clase.
 En este tipo de asociación, la clase hijo puede sobrevivir sin
su clase padre.
Para representar una relación de agregación, se dibuja una
línea sólida de la clase padre (total) a la clase hijo (parte),
y con un diamante en el lado de la clase padre.
Una llanta puede existir sin automóvil
3.3.3 Composición
 En este caso el ciclo de vida de una
instancia de la clase hijo depende
del ciclo de vida de una instancia
de la clase padre.
 A diferencia de la agregación
básica, para representarla el
diamante es lleno.
 Por ejemplo:
 Una instancia de la clase Company debe
tener al menos una en la clase
Departamento.
 En este tipo de relaciones, si una la
instancia Company se elimina,
automáticamente la instancia
Departamento también se elimina.
 Otra característica importante es
que la clase hijo solo puede
relacionarse con una instancia de la
clase padre.
Fecha Persona
Constructor
Destructor
Modificadores
Selectores
otros
1
2
3
4
4.1
4.2
LOGO
No es un bug, es una característica
no documentada.
(anónimo)

More Related Content

What's hot

Introduccin a-programacin-orientada-a-objetos-oop-clases-y-objetos900
Introduccin a-programacin-orientada-a-objetos-oop-clases-y-objetos900Introduccin a-programacin-orientada-a-objetos-oop-clases-y-objetos900
Introduccin a-programacin-orientada-a-objetos-oop-clases-y-objetos900
johnny herrera
 
Programacion orientada a objetos by Marcos Acosta
Programacion orientada a objetos by Marcos AcostaProgramacion orientada a objetos by Marcos Acosta
Programacion orientada a objetos by Marcos Acosta
Marcos Acosta
 
PROGRAMACION ORIENTADA A OBJETOS
PROGRAMACION ORIENTADA A OBJETOSPROGRAMACION ORIENTADA A OBJETOS
PROGRAMACION ORIENTADA A OBJETOS
TeDy j Sanchez
 
Diagramas de objetos
Diagramas de objetosDiagramas de objetos
Diagramas de objetos
still01
 
Lenguajes2
Lenguajes2Lenguajes2
Lenguajes2
Ernesto
 
Diagrama de clases
Diagrama de clasesDiagrama de clases
Diagrama de clases
still01
 

What's hot (20)

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
 
Introduccin a-programacin-orientada-a-objetos-oop-clases-y-objetos900
Introduccin a-programacin-orientada-a-objetos-oop-clases-y-objetos900Introduccin a-programacin-orientada-a-objetos-oop-clases-y-objetos900
Introduccin a-programacin-orientada-a-objetos-oop-clases-y-objetos900
 
Programación Orientada a Objetos
Programación Orientada a ObjetosProgramación Orientada a Objetos
Programación Orientada a Objetos
 
Introducción a la programación orientada objetos
Introducción a la programación orientada objetosIntroducción a la programación orientada objetos
Introducción a la programación orientada objetos
 
Poo
PooPoo
Poo
 
Investigacion objetos unidad 5
Investigacion objetos unidad 5Investigacion objetos unidad 5
Investigacion objetos unidad 5
 
Programacion orientada a objetos by Marcos Acosta
Programacion orientada a objetos by Marcos AcostaProgramacion orientada a objetos by Marcos Acosta
Programacion orientada a objetos by Marcos Acosta
 
Caracteristicas de un lenguaje de p.o.o
Caracteristicas de un lenguaje de p.o.oCaracteristicas de un lenguaje de p.o.o
Caracteristicas de un lenguaje de p.o.o
 
Programación Orientada a Objetos
Programación Orientada a ObjetosProgramación Orientada a Objetos
Programación Orientada a Objetos
 
PROGRAMACION ORIENTADA A OBJETOS
PROGRAMACION ORIENTADA A OBJETOSPROGRAMACION ORIENTADA A OBJETOS
PROGRAMACION ORIENTADA A OBJETOS
 
Diagramas de objetos
Diagramas de objetosDiagramas de objetos
Diagramas de objetos
 
Unidad 1 Mad IntroduccióN
Unidad 1 Mad IntroduccióNUnidad 1 Mad IntroduccióN
Unidad 1 Mad IntroduccióN
 
Programación Orientada a Objetos
Programación Orientada a ObjetosProgramación Orientada a Objetos
Programación Orientada a Objetos
 
Programacion orientada a objetos angelica
Programacion orientada a objetos angelicaProgramacion orientada a objetos angelica
Programacion orientada a objetos angelica
 
Lenguajes2
Lenguajes2Lenguajes2
Lenguajes2
 
Semana 6
Semana 6Semana 6
Semana 6
 
Introduccion a la programación orientada a objetos
Introduccion a la programación orientada a objetosIntroduccion a la programación orientada a objetos
Introduccion a la programación orientada a objetos
 
Clases
ClasesClases
Clases
 
Taller 1 1a
Taller 1 1aTaller 1 1a
Taller 1 1a
 
Diagrama de clases
Diagrama de clasesDiagrama de clases
Diagrama de clases
 

Similar to Cap3.0

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
Jose Angel Rodriguez
 
Programacion orientada a objetos
Programacion orientada a objetosProgramacion orientada a objetos
Programacion orientada a objetos
ALfonsx Viejo
 
Programación orientada a objetos
Programación orientada a objetosProgramación orientada a objetos
Programación orientada a objetos
ronnyme21
 
Programación estructurada a objetos.pptm
Programación  estructurada  a objetos.pptmProgramación  estructurada  a objetos.pptm
Programación estructurada a objetos.pptm
elvis mendieta
 
Programación orientada a objetos
Programación orientada a objetosProgramación orientada a objetos
Programación orientada a objetos
lindacajaperuiz
 
presentacion-tema-i-unidad-ii.GFGFHFHGppt
presentacion-tema-i-unidad-ii.GFGFHFHGpptpresentacion-tema-i-unidad-ii.GFGFHFHGppt
presentacion-tema-i-unidad-ii.GFGFHFHGppt
jorgealfarol
 
Programacion orientada a objetos
Programacion orientada a objetosProgramacion orientada a objetos
Programacion orientada a objetos
Agapito26
 

Similar to Cap3.0 (20)

Diagrama de clases
Diagrama de clasesDiagrama de clases
Diagrama de clases
 
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
 
Conceptos poo
Conceptos pooConceptos poo
Conceptos poo
 
Diapositivas poo
Diapositivas pooDiapositivas poo
Diapositivas poo
 
Programacion orientada a objetos
Programacion orientada a objetosProgramacion orientada a objetos
Programacion orientada a objetos
 
Programación orientada a objetos
Programación orientada a objetosProgramación orientada a objetos
Programación orientada a objetos
 
2clasesdeprogramacion
2clasesdeprogramacion2clasesdeprogramacion
2clasesdeprogramacion
 
Programación estructurada a objetos.pptm
Programación  estructurada  a objetos.pptmProgramación  estructurada  a objetos.pptm
Programación estructurada a objetos.pptm
 
Unidad II.pdf
Unidad II.pdfUnidad II.pdf
Unidad II.pdf
 
Clase 2
Clase 2 Clase 2
Clase 2
 
[ES] Programación orientada a objeto con java
[ES] Programación orientada a objeto con java[ES] Programación orientada a objeto con java
[ES] Programación orientada a objeto con java
 
PROGRAMACIÓN ORIENTADA A OBJETOS
PROGRAMACIÓN ORIENTADA A OBJETOSPROGRAMACIÓN ORIENTADA A OBJETOS
PROGRAMACIÓN ORIENTADA A OBJETOS
 
Programación orientada a objetos
Programación orientada a objetosProgramación orientada a objetos
Programación orientada a objetos
 
presentacion-tema-i-unidad-ii.GFGFHFHGppt
presentacion-tema-i-unidad-ii.GFGFHFHGpptpresentacion-tema-i-unidad-ii.GFGFHFHGppt
presentacion-tema-i-unidad-ii.GFGFHFHGppt
 
Asignacion2
Asignacion2Asignacion2
Asignacion2
 
clases
clasesclases
clases
 
Programacion orientada a objetos
Programacion orientada a objetosProgramacion orientada a objetos
Programacion orientada a objetos
 
Programación i 1. diseño orientado a objetos
Programación i 1. diseño orientado a objetosProgramación i 1. diseño orientado a objetos
Programación i 1. diseño orientado a objetos
 
Fundamentos básicos de la programación orientada a objetos
Fundamentos básicos de la programación orientada a objetosFundamentos básicos de la programación orientada a objetos
Fundamentos básicos de la programación orientada a objetos
 
Unidad1 y 2
Unidad1 y 2Unidad1 y 2
Unidad1 y 2
 

More from Mary Dunnia Lopez N.

More from Mary Dunnia Lopez N. (20)

Cap2.1
Cap2.1Cap2.1
Cap2.1
 
Cap7 2 matrices
Cap7 2 matricesCap7 2 matrices
Cap7 2 matrices
 
Cap7 1 vectores
Cap7 1 vectoresCap7 1 vectores
Cap7 1 vectores
 
Guia lab1
Guia lab1Guia lab1
Guia lab1
 
Cap4.2 visual basic.net
Cap4.2 visual basic.netCap4.2 visual basic.net
Cap4.2 visual basic.net
 
Cap5 1.1 tutor2 la_variable
Cap5 1.1 tutor2 la_variableCap5 1.1 tutor2 la_variable
Cap5 1.1 tutor2 la_variable
 
Cap5 1.4 tutor3 algoritmos repetititvos
Cap5 1.4 tutor3 algoritmos repetititvosCap5 1.4 tutor3 algoritmos repetititvos
Cap5 1.4 tutor3 algoritmos repetititvos
 
Cap5 1.3 tutor3 algoritmos condicionales
Cap5 1.3 tutor3 algoritmos condicionalesCap5 1.3 tutor3 algoritmos condicionales
Cap5 1.3 tutor3 algoritmos condicionales
 
Cap5 1.2 tutor2 algoritmos secuenciales
Cap5 1.2 tutor2 algoritmos secuencialesCap5 1.2 tutor2 algoritmos secuenciales
Cap5 1.2 tutor2 algoritmos secuenciales
 
Vectores
VectoresVectores
Vectores
 
Matrices
MatricesMatrices
Matrices
 
Cadenas
CadenasCadenas
Cadenas
 
Cap1.3 tutor recursividad matriz
Cap1.3 tutor recursividad   matrizCap1.3 tutor recursividad   matriz
Cap1.3 tutor recursividad matriz
 
Cap1.2 tutor recursividad vectores
Cap1.2 tutor recursividad   vectoresCap1.2 tutor recursividad   vectores
Cap1.2 tutor recursividad vectores
 
Cap30 intro
Cap30 introCap30 intro
Cap30 intro
 
Cap32 rep num
Cap32 rep numCap32 rep num
Cap32 rep num
 
Cap31 sist num
Cap31 sist numCap31 sist num
Cap31 sist num
 
Cap2
Cap2Cap2
Cap2
 
Contar digitos
Contar digitosContar digitos
Contar digitos
 
Cap1.1 recursividad
Cap1.1 recursividadCap1.1 recursividad
Cap1.1 recursividad
 

Recently uploaded

6.-Como-Atraer-El-Amor-01-Lain-Garcia-Calvo.pdf
6.-Como-Atraer-El-Amor-01-Lain-Garcia-Calvo.pdf6.-Como-Atraer-El-Amor-01-Lain-Garcia-Calvo.pdf
6.-Como-Atraer-El-Amor-01-Lain-Garcia-Calvo.pdf
MiNeyi1
 
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
EliaHernndez7
 
5.- Doerr-Mide-lo-que-importa-DESARROLLO PERSONAL
5.- Doerr-Mide-lo-que-importa-DESARROLLO PERSONAL5.- Doerr-Mide-lo-que-importa-DESARROLLO PERSONAL
5.- Doerr-Mide-lo-que-importa-DESARROLLO PERSONAL
MiNeyi1
 
La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...
JonathanCovena1
 
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdfNUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
UPTAIDELTACHIRA
 

Recently uploaded (20)

Dinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes dDinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes d
 
6.-Como-Atraer-El-Amor-01-Lain-Garcia-Calvo.pdf
6.-Como-Atraer-El-Amor-01-Lain-Garcia-Calvo.pdf6.-Como-Atraer-El-Amor-01-Lain-Garcia-Calvo.pdf
6.-Como-Atraer-El-Amor-01-Lain-Garcia-Calvo.pdf
 
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdfTema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
 
Registro Auxiliar - Primaria 2024 (1).pptx
Registro Auxiliar - Primaria  2024 (1).pptxRegistro Auxiliar - Primaria  2024 (1).pptx
Registro Auxiliar - Primaria 2024 (1).pptx
 
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
 
Presentacion Metodología de Enseñanza Multigrado
Presentacion Metodología de Enseñanza MultigradoPresentacion Metodología de Enseñanza Multigrado
Presentacion Metodología de Enseñanza Multigrado
 
5.- Doerr-Mide-lo-que-importa-DESARROLLO PERSONAL
5.- Doerr-Mide-lo-que-importa-DESARROLLO PERSONAL5.- Doerr-Mide-lo-que-importa-DESARROLLO PERSONAL
5.- Doerr-Mide-lo-que-importa-DESARROLLO PERSONAL
 
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLAACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
 
Fe contra todo pronóstico. La fe es confianza.
Fe contra todo pronóstico. La fe es confianza.Fe contra todo pronóstico. La fe es confianza.
Fe contra todo pronóstico. La fe es confianza.
 
La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...
 
proyecto de mayo inicial 5 añitos aprender es bueno para tu niño
proyecto de mayo inicial 5 añitos aprender es bueno para tu niñoproyecto de mayo inicial 5 añitos aprender es bueno para tu niño
proyecto de mayo inicial 5 añitos aprender es bueno para tu niño
 
Power Point: Fe contra todo pronóstico.pptx
Power Point: Fe contra todo pronóstico.pptxPower Point: Fe contra todo pronóstico.pptx
Power Point: Fe contra todo pronóstico.pptx
 
CALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADCALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDAD
 
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdfNUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
 
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptxSEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
 
Estrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónEstrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcción
 
2024 KIT DE HABILIDADES SOCIOEMOCIONALES.pdf
2024 KIT DE HABILIDADES SOCIOEMOCIONALES.pdf2024 KIT DE HABILIDADES SOCIOEMOCIONALES.pdf
2024 KIT DE HABILIDADES SOCIOEMOCIONALES.pdf
 
INSTRUCCION PREPARATORIA DE TIRO .pptx
INSTRUCCION PREPARATORIA DE TIRO   .pptxINSTRUCCION PREPARATORIA DE TIRO   .pptx
INSTRUCCION PREPARATORIA DE TIRO .pptx
 
Supuestos_prácticos_funciones.docx
Supuestos_prácticos_funciones.docxSupuestos_prácticos_funciones.docx
Supuestos_prácticos_funciones.docx
 
Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...
 

Cap3.0

  • 1. LOGO Ing. Mary Lopez Programacion II PROGRAMACION ORIENTADA A OBJETOS Universidad Autónoma Gabriel Rene Moreno FICCT Semestre I/2018
  • 2. Objetivos 1. Conocer y Entender los conceptos fundamentales de la Programación orientada a objetos. 2. Aplicar los conceptos de POO para el diseño y programación. 3. Analizar los diferentes niveles de reutilización que permite la POO.
  • 3. Palabras Clave • Objetos y Clases • Atributos • Mensajes y Métodos • Encapsulamiento y ocultamiento • Interfaces • Herencia de clases • Polimorfismo • Composición de Objetos
  • 4. Contenido Introducción1 Conceptos Básicos2 Diagrama de Clases 4 Taller 1: Identificar Objetos y Clases 3 Taller 2: Diagrama de Clases5 6 Taller 3: Implementación en C++6
  • 6. - Frecuentemente sigue el método de resolución de problemas de la vida real. Preliminar P.O.O - El análisis y diseño OO modela el mundo en función a objetos con: algún estado, comportamiento y determinados eventos.
  • 8. - Organización de los programas tratando de representar el mundo real. - Un programa se compone de un conjunto de objetos que interactúan por mensajes. - Cada objeto es una abstracción del mundo real y realiza una única tarea. ¿Que es POO? - Interesa que se puede hacer con los objetos mas que como se hace. - Cada objeto es un ejemplar de una clase. - Las clases se pueden organizar en una jerarquía de herencia.
  • 9.
  • 10. 2. CONCEPTOS BASICOS Definición (Booch) Pilares de la Poo Abstracción (Que es mas importante que el Como) Encapsulamiento (Atributos + Métodos) Ocultamiento ( 3 Niveles) Modularidad Herencia (Derivación) Polimorfismo (2 tipos)
  • 11. La POO es el método de implementación en el que los programas se organizan como colecciones cooperativas de objetos, cada uno de los cuales representa un ejemplar de una clase y cuyas clases son miembros de una jerarquía de clases unidas mediante relaciones de herencia . 2.1 Definición de Booch  La unidad lógica de programación es el objeto.  Los objetos tienen relaciones.  Los objetos con características idénticas serán una Clase.  Las clases pertenecen a una jerarquía (son las clases las que heredan y no los objetos).
  • 12. 2.2 Pilares de la Poo
  • 13. 2.2.1 Abstracción  Es el conocimiento que se tiene de una cosa prescindiendo de las demás que estén con ella.  La abstracción localiza y oculta los detalles de un modelo o diseño para generar y manipular objetos  Se puede conocer un objeto observando sin necesidad de ver su interior, su implementación o su forma de construcción.  Existen dos tipos de abstracción: de datos y funcional. La abstracción se enfoca a la vista exterior de un objeto «Este objeto es ….»
  • 14. Abstracción de datos Es utilizar los datos sin preocuparse por los detalles de su implementación, lo importante es saber que tipo de información se puede utilizar y no como está almacenado Abstracción Funcional Es saber que es lo que hace un determinado proceso, pero no como lo hace. Por ejemplo el proceso Buscar de la clase Lista, se sabe que buscara un elemento sin importar como lo hará. Que Atributo Como  Campo Que  Método Como  Algoritmo  Identificar los objetos principales  Definir atributos y métodos principales de cada objeto  Clasificar los objetos según sus semejanzas y diferencias  Establecer como se relacionan y como se comunican entre si (eventos)
  • 15. 2.2.2 Encapsulamiento  Es el resultado de ocultar los detalles de implementación  (estado interno) de un objeto respecto de su usuario  El empaque conjunto de datos y métodos se llama encapsulación  El objeto esconde (protege) sus datos de los demás objetos y permite el acceso a los datos mediante sus propios métodos. Esto es lo que se llaman ocultamiento de la información y evita la corrupción de los datos de un objeto.  Este pilar de POO definitivamente facilita el cambio y mejora la modularidad El encapsulamiento permite a otros objetos ver su interior «Este objeto tiene …»
  • 16. Ocultamiento  Consiste en no permitir el acceso a los componentes de una clases :atributos y métodos  Esto se logra con la visibilidad que ofrecen los lenguajes de programación.  Privado: Solo los miembros de la clase tienen acceso  Protegido: Solo los miembros de la clase y sus derivados tienen acceso  Público: Todos tienen acceso
  • 17. 2.2.3 Modularidad  Este concepto ya viene desde la programación estructurada, y se refiere al hecho de realizar un programa por partes, a las cuales se las denomina módulos.  Un módulo es un archivo que contiene un conjunto de declaraciones y/o procesos.  Una Clase será un modulo independiente.
  • 18. 2.2.4 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. El gato y el Perro tendrían la herencia (métodos y atributos) del Mamífero. Mamífero Gato Perro Es la capacidad de crear nuevas clases basándose en clases previamente definidas, de las que se aprovechan ciertos datos y métodos, se desechan otros y se añaden nuevos.
  • 20. 2.2.5 Polimorfismo  Es la capacidad que tienen los objetos de una clase de responder al mismo mensaje o evento de acuerdo a los parámetros utilizados durante su invocación.  Hay dos tipos: • Dinámico: es el que el código no incluye ningún tipo de especificación sobre el tipo de datos.  TEMPLATE • Estático: es el que los tipos a los que se aplica el polimorfismo deben ser explícitamente indicados y declarados uno por uno antes de ser utilizados.  proceso VS función.
  • 21.
  • 22. 3. DIAGRAMA DE CLASES Diagrama de Clases Partes del DC Clase Objeto Atributos Método Herencia Generalización Especialización Relación entre clases Asociación La Clase asociación Asociación Reflexiva Agregación Composición
  • 23. • Es en realidad un complemento de UML (Lenguaje Unificado de Modelado: estándar para describir un "plano" del sistema) • Representa un lenguaje gráfico para visualizar, especificar, construir y documentar un sistema. • Representa las clases, sus partes y la forma en la que las clases de los objetos están relacionados uno con otro. • Es la fuente de generación de código. Los Diagramas de Clase
  • 24. Partes de un DC  Clases: Una clase es una definición de un tipo de objeto. Es una descripción generalizada de un conjunto de objetos similares • Atributos: describe las características de una clase de objetos. • Métodos: define el comportamiento de una clase de objetos  Herencia: Permite organizar las definiciones de la clase para simplificar y facilitar su implementación.  Relación entre clases: Es un término formal para un tipo de relación.
  • 25. 3.1 Clase  Es la descripción de un conjunto de objetos que comparten una estructura ( atributos, operaciones, relaciones y semántica) y un comportamiento.  La estructura de un objeto se define en su clase, por lo que un objeto es en realidad la instancia de una clase  Luis Joyanes Aguilar “Una Clase es un tipo definido por el usuario(programador) que determina las estructuras de datos y las operaciones asociadas con este tipo”
  • 26. 3.1.1 Objeto  Entidad que contiene los atributos que describen el estado de un objeto del mundo real y las acciones que se asocian con el objeto del mundo real.  Un objeto es designado con un nombre o un identificador.  Los datos deberían estar ocultos en el objeto, y las operaciones serían el interface del objeto con el exterior, pero estas operaciones están encapsuladas en "cajas negras". OBJETO = DATOS + OPERACIONES Taylor Jourdon Booch
  • 27. 3.1.2 Elementos de un Objeto 1. Atributos  Son las características que definen a la clase, es lo que el usuario (de la clase) puede ver. Es la abstracción.  Son variables que están dentro de los objetos. También son llamados: propiedades o datos miembro. Ejemplo: La Fecha definido por 3 datos dia, mes y año 2. Método  Es la forma en que actúa y reacciona ante sus cambios de estado e intercambio de mensajes con otros objetos.  Son los procesos (funciones o procedimientos) que permiten trabajar con los datos de los objetos.  La visibilidad de una función viene dada por:  Public (+) permite el acceso desde otras clases.  Private (-) limita el acceso a la clase, solo operaciones de la clase tienen acceso.  Protected (#) permite el acceso por las subclases. En el caso de generalización (herencia), las subclases deben tener acceso a los atributos y operaciones de la superclase, por ello se los define con protected..
  • 29. Generalización Vs Especialización • Cuando dos clases tienen atributos en común se debe analizar la relación que guardan entre si:  Las clases con atributos en común pueden conformar una superclase  Una superclase es entonces la generalización de varias subclases.  De una clase puede derivarse otra llamada Subclase.
  • 30. Asociación: Es una relación semántica (significativa) entre objetos. Cuando un objeto accede a los atributos y métodos de otro objeto estamos definiendo una asociación entre ellos. Agregación: Es una relación que define que un objeto es parte de otro objeto. Cuando definimos que un objeto tiene como atributo otro objeto decimos que es una agregación. A través de la agregación se definen objetos compuestos. 3.3 Relación entre clases
  • 31. 3.3.1 Asociaciones entre Clases Es una relación entre instancias(objetos) de clases, especificando que los objetos de una clase deben “conocer'' de alguna manera los objetos de la otra. El mensaje es el modo en que se comunican e interrelacionan los objetos entre si. Por ejemplo:  Un objeto de la clase X envía un mensaje a un objeto de la clase Y.  Un objeto de la clase Y crea un objeto de la clase X.  Un objeto de la clase X recibe un mensaje con un objeto de la clase Z como argumento
  • 32. Simbología • El nombre de la Asociación va debajo de la línea que la representa. • Una flecha rellena indica la dirección de la relación • Los roles se ubican cerca del final de la asociación. Estos representan la manera en que dos clases se ven entre ellas. • Normalmente no se ponen el nombre de la asociación y los roles. • Cuando la asociación es calificada, el símbolo correspondiente se coloca al final de la asociación, contra la clase que hace de calificador. • Un calificador en una asociación que resuelve el problema de la búsqueda. En el UML la información de identidad se conoce como calificador, su símbolo es un pequeño rectángulo adjunto a la clase que hará la búsqueda-
  • 33. Multiplicidad • Las notaciones utilizadas para señalar la multiplicidad se colocan cerca del final de una asociación. • Estos símbolos indican el numero de instancias de una clase vinculadas a una de las instancias de la otra clase • Por ejemplo: Una empresa puede tener uno o mas empleados, pero cada empleado trabaja para una sola empresa.
  • 34. Navegabilidad  Representa asociaciones bidireccionales (ambos sentidos) o unidireccionales(un solo sentido).  La navegabilidad bidireccional se representa con una línea  La navegabilidad unidireccional se expresa con una punta de flecha abierta puesta en el lado de la clase a la que se llega.  La clase Fecha no tiene información de la clase Socio por lo que la navegabilidad desde la clase Fecha no es posible.  Sin embargo, la clase Socio tiene una referencia a la clase Fecha por lo que si es viable la navegabilidad en este sentido.
  • 35. La Clase Asociación  Cuando se modela una asociación entre clases, a veces es necesario incluir otra clase que contiene información valiosa acerca de la relación.  La siguiente figura muestra una clase asociación para el ejemplo de los vuelos. La asociación entre la clase Flight y FrequentFlyer es a través de una clase llamada MileageCredit. Obsérvese que esto se da en asociaciones Muchos a Muchos en las que es necesario almacenar cierta información derivado de la asociación.
  • 36. Asociación Reflexiva  Una clase puede asociarse con sí misma. Una clase Empleado puede relacionarse con sí misma a través del rol gerente/dirige.  No significa que una instancia está relacionada consigo misma, sino que una instancia de la clase está relacionada con otra instancia de la misma clase.  Una instancia de Employee puede ser el gerente de otras instancias de Employee. Como el rol manages tiene una multiplicidad de 0…*, significa que puede no tener otros empleados a quien dirigir. Una instancia de Employee tiene 1 sólo gerente ó un solo director.
  • 37. 3.3.2 Agregación Básica  Es un tipo especial de asociación utilizado para modelar una relación “whole to its parts”.  Por ejemplo, Coche es una entidad “whole” y Llanta es una parte del Coche.  Una asociación con una agregación indica que una clase es parte de otra clase.  En este tipo de asociación, la clase hijo puede sobrevivir sin su clase padre. Para representar una relación de agregación, se dibuja una línea sólida de la clase padre (total) a la clase hijo (parte), y con un diamante en el lado de la clase padre. Una llanta puede existir sin automóvil
  • 38. 3.3.3 Composición  En este caso el ciclo de vida de una instancia de la clase hijo depende del ciclo de vida de una instancia de la clase padre.  A diferencia de la agregación básica, para representarla el diamante es lleno.  Por ejemplo:  Una instancia de la clase Company debe tener al menos una en la clase Departamento.  En este tipo de relaciones, si una la instancia Company se elimina, automáticamente la instancia Departamento también se elimina.  Otra característica importante es que la clase hijo solo puede relacionarse con una instancia de la clase padre. Fecha Persona
  • 40. LOGO No es un bug, es una característica no documentada. (anónimo)

Editor's Notes

  1. La reusabilidad de código y la herencia ahorran tiempo y dinero en el desarrollo Integridad  Gracias al encapsulamiento protege sus objetos contra procesos sin derechos de accesos Pensar en objetos  El diseñador no se preocupa de detalles de bajo nivel Programación mas sencilla  Se crea a partir de pequeñas piezas.
  2. La idea básica de este paradigma de programación es agrupar los datos y los procedimientos para manejarlos en una única entidad: el objeto. Cada programa es un objeto, que a su vez está formado de objetos que se relacionan entre ellos.
  3. Es la capacidad de crear nuevas clases basándose en clases previamente definidas, de las que se aprovechan ciertos datos y métodos, se desechan otros y se añaden nuevos. Veremos que es posible diseñar nuevas clases basándose en clases ya existentes. En C++ esto se llama derivación de clases, y en POO herencia. Cuando se deriva una clase de otras, normalmente se añadirán nuevos métodos y datos. Es posible que algunos de estos métodos o datos de la clase original no sean válidos, en ese caso pueden ser enmascarados en la nueva clase o simplemente eliminados. El conjunto de datos y métodos que sobreviven, es lo que se conoce como herencia.
  4. Herencia simple Heredan de una sola clase Herencia multipo  Heredan de mas de una o mas clases
  5. Un objeto es una unidad que engloba en sí mismo datos y procedimientos necesarios para el tratamiento de esos datos.