SlideShare una empresa de Scribd logo
1 de 42
LOGO
Ing. Mary Lopez
Programacion II
PROGRAMACION
ORIENTADA A OBJETOS
Universidad Autónoma Gabriel Rene Moreno
FICCT
Semestre II/2017
Contenido
Introducción1
Conceptos Básicos2
Diagrama de Clases
4 Taller 1: Metodología Identificar Objetos y Clases
3
Taller 2: Diagrama de Clases5
6 Taller 3: Implementación en C++
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
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.
Algunos Ejemplos:
Beneficios de la POO
Reutilización
(herencia)
Integridad
(Encapsula)
Programas
mas sencillos
Por que usar ?
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 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).
• Los objetos tienen relaciones.
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 Tipos
Igualdad de
Identidad y estado
Herencia
Generalización
Especialización
Relación entre
clases
Asociación
Asociación Genérica
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.
 Asociación: 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.
OBJETO = DATOS + OPERACIONES
 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".
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.
 Los objetos definidos tienen partes públicas, privadas y
protegidas.
 La parte pública o visible por los demás objetos
representa la interfaz.
Método
• El mensaje es el modo en que se comunican e
interrelacionan los objetos entre si.
• 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.
3.3 Relación 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.
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
3.3.1 Asociaciones genéricas
3.3.2 Navegabilidad
 Hay que ver si desde una clase se puede ir a la otra.
 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 navegabilidad se expresa con una punta de flecha abierta
puesta en el lado de la clase a la que se llega.
3.3.3 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.
3.3.4 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.
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.5 Tipos de relación
3.3.5.1 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.5.2 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.
1. Agregación Es una relación en la que la clase “Todo” juega un rol mas
importante que la Clase “Parte”
2. Composición Permite expresar una relación de tipo “está compuesto por”.
Por ejemplo, un segmento está compuesto por dos puntos: origen y extremo
(el Objeto base se construye a partir del objeto incluido).
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)

Más contenido relacionado

La actualidad más candente

java (clases,herencias,encapsulamiento,.. )
java (clases,herencias,encapsulamiento,.. )java (clases,herencias,encapsulamiento,.. )
java (clases,herencias,encapsulamiento,.. )brayan0015
 
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-objetos900johnny herrera
 
Programación orientada a objetos
Programación orientada a objetosProgramación orientada a objetos
Programación orientada a objetosAlexis Arguello
 
Programacion orientada a objetos
Programacion orientada a objetosProgramacion orientada a objetos
Programacion orientada a objetosAngel Laverde ID
 
programacion orientada a objetos
programacion orientada a objetosprogramacion orientada a objetos
programacion orientada a objetosjent46
 
Orientacion A Objetos Para Dummies
Orientacion A Objetos Para DummiesOrientacion A Objetos Para Dummies
Orientacion A Objetos Para DummiesSorey García
 
[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 javaEudris Cabrera
 
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
 
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 AcostaMarcos Acosta
 
C3 las clases en java v2
C3 las clases en java v2C3 las clases en java v2
C3 las clases en java v2Mariano Galvez
 
Apunte paradigma orientado a objetos
Apunte paradigma orientado a objetosApunte paradigma orientado a objetos
Apunte paradigma orientado a objetosAlejandro Canosa
 
Lenguaje de Programación Orientada a Objetos
Lenguaje  de  Programación  Orientada  a Objetos Lenguaje  de  Programación  Orientada  a Objetos
Lenguaje de Programación Orientada a Objetos Marielena Lujano
 

La actualidad más candente (20)

java (clases,herencias,encapsulamiento,.. )
java (clases,herencias,encapsulamiento,.. )java (clases,herencias,encapsulamiento,.. )
java (clases,herencias,encapsulamiento,.. )
 
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
 
Clases en java
Clases en javaClases en java
Clases en java
 
Programacion orientada a objetos
Programacion orientada a objetosProgramacion orientada a objetos
Programacion orientada a objetos
 
programacion orientada a objetos
programacion orientada a objetosprogramacion orientada a objetos
programacion orientada a objetos
 
Orientacion A Objetos Para Dummies
Orientacion A Objetos Para DummiesOrientacion A Objetos Para Dummies
Orientacion A Objetos Para Dummies
 
[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
 
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
 
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)
 
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
 
Principios poo
Principios pooPrincipios poo
Principios poo
 
C3 las clases en java v2
C3 las clases en java v2C3 las clases en java v2
C3 las clases en java v2
 
POO sencillito
POO sencillitoPOO sencillito
POO sencillito
 
Apunte paradigma orientado a objetos
Apunte paradigma orientado a objetosApunte paradigma orientado a objetos
Apunte paradigma orientado a objetos
 
Lenguaje de Programación Orientada a Objetos
Lenguaje  de  Programación  Orientada  a Objetos Lenguaje  de  Programación  Orientada  a Objetos
Lenguaje de Programación Orientada a Objetos
 
Programación orientada a objeto (autoguardado) 1
Programación orientada a objeto (autoguardado) 1Programación orientada a objeto (autoguardado) 1
Programación orientada a objeto (autoguardado) 1
 
Pilares de la POO
Pilares de la POOPilares de la POO
Pilares de la POO
 

Similar a Cap3.0

Similar a Cap3.0 (20)

Diapositivas poo
Diapositivas pooDiapositivas poo
Diapositivas poo
 
Conceptos poo
Conceptos pooConceptos poo
Conceptos poo
 
Unidad II.pdf
Unidad II.pdfUnidad II.pdf
Unidad II.pdf
 
Unidad1 y 2
Unidad1 y 2Unidad1 y 2
Unidad1 y 2
 
Programación orientada a objetos
Programación orientada a objetosProgramación orientada a objetos
Programación orientada a objetos
 
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
PROGRAMACIÓN ORIENTADA A OBJETOSPROGRAMACIÓN ORIENTADA A OBJETOS
PROGRAMACIÓN ORIENTADA A OBJETOS
 
Diagrama de clases
Diagrama de clasesDiagrama de clases
Diagrama de clases
 
clases
clasesclases
clases
 
Clase 2
Clase 2 Clase 2
Clase 2
 
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
 
Poo
PooPoo
Poo
 
Poo
PooPoo
Poo
 
2clasesdeprogramacion
2clasesdeprogramacion2clasesdeprogramacion
2clasesdeprogramacion
 
Programacion orientada a objetos
Programacion orientada a objetosProgramacion orientada a objetos
Programacion orientada a objetos
 
Asignacion2
Asignacion2Asignacion2
Asignacion2
 
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
 
Cspr
CsprCspr
Cspr
 

Más de 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
 

Último

codigos HTML para blogs y paginas web Karina
codigos HTML para blogs y paginas web Karinacodigos HTML para blogs y paginas web Karina
codigos HTML para blogs y paginas web Karinavergarakarina022
 
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOSTEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOSjlorentemartos
 
GLOSAS Y PALABRAS ACTO 2 DE ABRIL 2024.docx
GLOSAS  Y PALABRAS ACTO 2 DE ABRIL 2024.docxGLOSAS  Y PALABRAS ACTO 2 DE ABRIL 2024.docx
GLOSAS Y PALABRAS ACTO 2 DE ABRIL 2024.docxAleParedes11
 
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptxSINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptxlclcarmen
 
Herramientas de Inteligencia Artificial.pdf
Herramientas de Inteligencia Artificial.pdfHerramientas de Inteligencia Artificial.pdf
Herramientas de Inteligencia Artificial.pdfMARIAPAULAMAHECHAMOR
 
MAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grandeMAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grandeMarjorie Burga
 
6° SEM30 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
6° SEM30 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx6° SEM30 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
6° SEM30 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docxCeciliaGuerreroGonza1
 
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptxPPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptxOscarEduardoSanchezC
 
Lecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdadLecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdadAlejandrino Halire Ccahuana
 
texto argumentativo, ejemplos y ejercicios prácticos
texto argumentativo, ejemplos y ejercicios prácticostexto argumentativo, ejemplos y ejercicios prácticos
texto argumentativo, ejemplos y ejercicios prácticosisabeltrejoros
 
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdfDemetrio Ccesa Rayme
 
Heinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativoHeinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativoFundación YOD YOD
 
Unidad II Doctrina de la Iglesia 1 parte
Unidad II Doctrina de la Iglesia 1 parteUnidad II Doctrina de la Iglesia 1 parte
Unidad II Doctrina de la Iglesia 1 parteJuan Hernandez
 
2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdf2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdfBaker Publishing Company
 
CALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADCALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADauxsoporte
 
Introducción:Los objetivos de Desarrollo Sostenible
Introducción:Los objetivos de Desarrollo SostenibleIntroducción:Los objetivos de Desarrollo Sostenible
Introducción:Los objetivos de Desarrollo SostenibleJonathanCovena1
 
EXPECTATIVAS vs PERSPECTIVA en la vida.
EXPECTATIVAS vs PERSPECTIVA  en la vida.EXPECTATIVAS vs PERSPECTIVA  en la vida.
EXPECTATIVAS vs PERSPECTIVA en la vida.DaluiMonasterio
 
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADODECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADOJosé Luis Palma
 

Último (20)

codigos HTML para blogs y paginas web Karina
codigos HTML para blogs y paginas web Karinacodigos HTML para blogs y paginas web Karina
codigos HTML para blogs y paginas web Karina
 
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOSTEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
 
GLOSAS Y PALABRAS ACTO 2 DE ABRIL 2024.docx
GLOSAS  Y PALABRAS ACTO 2 DE ABRIL 2024.docxGLOSAS  Y PALABRAS ACTO 2 DE ABRIL 2024.docx
GLOSAS Y PALABRAS ACTO 2 DE ABRIL 2024.docx
 
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptxSINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
 
Herramientas de Inteligencia Artificial.pdf
Herramientas de Inteligencia Artificial.pdfHerramientas de Inteligencia Artificial.pdf
Herramientas de Inteligencia Artificial.pdf
 
MAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grandeMAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grande
 
6° SEM30 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
6° SEM30 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx6° SEM30 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
6° SEM30 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
 
Sesión de clase: Defendamos la verdad.pdf
Sesión de clase: Defendamos la verdad.pdfSesión de clase: Defendamos la verdad.pdf
Sesión de clase: Defendamos la verdad.pdf
 
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptxPPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
 
Lecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdadLecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdad
 
texto argumentativo, ejemplos y ejercicios prácticos
texto argumentativo, ejemplos y ejercicios prácticostexto argumentativo, ejemplos y ejercicios prácticos
texto argumentativo, ejemplos y ejercicios prácticos
 
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdf
 
Heinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativoHeinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativo
 
Unidad II Doctrina de la Iglesia 1 parte
Unidad II Doctrina de la Iglesia 1 parteUnidad II Doctrina de la Iglesia 1 parte
Unidad II Doctrina de la Iglesia 1 parte
 
Razonamiento Matemático 1. Deta del año 2020
Razonamiento Matemático 1. Deta del año 2020Razonamiento Matemático 1. Deta del año 2020
Razonamiento Matemático 1. Deta del año 2020
 
2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdf2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdf
 
CALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADCALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDAD
 
Introducción:Los objetivos de Desarrollo Sostenible
Introducción:Los objetivos de Desarrollo SostenibleIntroducción:Los objetivos de Desarrollo Sostenible
Introducción:Los objetivos de Desarrollo Sostenible
 
EXPECTATIVAS vs PERSPECTIVA en la vida.
EXPECTATIVAS vs PERSPECTIVA  en la vida.EXPECTATIVAS vs PERSPECTIVA  en la vida.
EXPECTATIVAS vs PERSPECTIVA en la vida.
 
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADODECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
 

Cap3.0

  • 1. LOGO Ing. Mary Lopez Programacion II PROGRAMACION ORIENTADA A OBJETOS Universidad Autónoma Gabriel Rene Moreno FICCT Semestre II/2017
  • 2. Contenido Introducción1 Conceptos Básicos2 Diagrama de Clases 4 Taller 1: Metodología Identificar Objetos y Clases 3 Taller 2: Diagrama de Clases5 6 Taller 3: Implementación en C++
  • 3. 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.
  • 4. Palabras Clave • Objetos y Clases • Atributos • Mensajes y Métodos • Encapsulamiento y ocultamiento • Interfaces • Herencia de clases • Polimorfismo • Composición de Objetos
  • 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. Beneficios de la POO Reutilización (herencia) Integridad (Encapsula) Programas mas sencillos Por que usar ? Pensar en Objetos
  • 9. - 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.
  • 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
  • 12. • La unidad lógica de programación es el objeto. • 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). • Los objetos tienen relaciones. 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 Tipos Igualdad de Identidad y estado Herencia Generalización Especialización Relación entre clases Asociación Asociación Genérica 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.  Asociación: 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. OBJETO = DATOS + OPERACIONES  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". 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.  Los objetos definidos tienen partes públicas, privadas y protegidas.  La parte pública o visible por los demás objetos representa la interfaz.
  • 28. Método • El mensaje es el modo en que se comunican e interrelacionan los objetos entre si. • 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..
  • 30. 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.
  • 31. 3.3 Relación 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. 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
  • 33.
  • 34. 3.3.2 Navegabilidad  Hay que ver si desde una clase se puede ir a la otra.  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 navegabilidad se expresa con una punta de flecha abierta puesta en el lado de la clase a la que se llega.
  • 35. 3.3.3 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. 3.3.4 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. 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.5 Tipos de relación
  • 38. 3.3.5.1 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
  • 39. 3.3.5.2 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.
  • 40. 1. Agregación Es una relación en la que la clase “Todo” juega un rol mas importante que la Clase “Parte” 2. Composición Permite expresar una relación de tipo “está compuesto por”. Por ejemplo, un segmento está compuesto por dos puntos: origen y extremo (el Objeto base se construye a partir del objeto incluido). Fecha Persona
  • 42. LOGO No es un bug, es una característica no documentada. (anónimo)

Notas del editor

  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.
  6. Se trata de otro concepto de POO, los mensajes que lleguen a un objeto se procesarán ejecutando un determinado método de ese objeto.
  7. 1. La composición permite expresar una relación de tipo “está compuesto por” • Por ejemplo, un segmento está compuesto por dos puntos: origen y extremo 2. Composición (el Objeto base se construye a partir del objeto incluido). El tiempo de vida del objeto incluido está condicionado por el tiempo de vida del que lo incluye.(no puede ser compartido entre ensamblados) Agregación (el objeto base utiliza al incluido para su funcionamiento). El tiempo de vida del objeto incluido es independiente del que lo incluye. (puede aparecer en varios ensamblados)