SlideShare una empresa de Scribd logo
1 de 55
PROGRAMACIÓN ORIENTADA A
OBJETOS
2
Introducción
Paradigma: Ejemplo ilustrativo, enunciado modelo
 Programación imperativa
 Programación funcional
 Programación lógica
Nuevo Paradigma:
 Programación Orientada a Objetos (POO)
3
Programación Procedimental
Procedimiento 1
Procedimiento 2
Procedimiento 3
D
A
T
O
S
4
Programación Orientada a Objetos
Métodos
DATOS
Métodos
DATOS
Métodos Métodos
DATOS DATOS
5
Facilita la creación de software de calidad pues
sus características potencian:
 La mantención
 La extensión y
 La reutilización del software generado bajo este
paradigma
La POO se basa en la idea natural de un mundo
lleno de objetos y que la resolución de problemas
se realiza mediante el modelo de objetos
POO
6
La visión de Objetos:
Mesas
Sillas
Computadores
Autos
Cuentas bancarias
Partidos de fútbol
Perros, etc
POO
7
Los objetos se pueden Organizar según su
necesidad
Mamíferos : Perro, Ciervo
Teléfonos : Fijo, Celular
Deportes : Fútbol, Tenis
Vehículos : Automóvil, Camión
POO
8
METODOLOGÍA
9
La base de esta tecnología es:
Modelamiento
Modelar
con base en
Entidades
Los problemas
que se desea
resolver
Relevantes y
tangibles en el
problema
10
El modelo define una perspectiva abstracta del
problema
 Los datos que son afectados
 Las operaciones que se aplican sobre los datos
Abstracción
11
Ejemplo
Para la administración docente, las entidades que
participan son:
Administr. Docente
Profesores
Asignaturas
Alumnos
Salas
12
POO
Identificar los objetos importantes
Organizar los objetos en jerarquías
Otorgar, a los objetos, atributos relevantes que
describan sus características
Proveer, a cada objeto, las funciones inherentes a
su comportamiento
13
Conceptos de la POO
La POO trata de aproximarse al modo de actuar
del hombre y no al de la máquina
Conceptos fundamentales que sustentan la POO:
 Clase
 Objeto
 Instancia
 Atributos
 Métodos
14
Clase
Una clase es como un tipo de dato creado por el
usuario, que posee dos categorías de miembros:
 Atributos (Datos) ⇒ Estado
 Métodos (Algoritmos) ⇒ Comportamiento
15
Clase
En general, es posible crear una clase a partir de
cualquier objeto que esté a nuestro alrededor. Por
ejemplo:
 Persona
 Automóvil
 Mascota
16
Instancias-Objetos
Una Instancia es una ocurrencia de la clase
Al momento de crear un objeto se produce la
instanciación
Un Objeto es una instancia de una Clase específica
17
Instancias-Objetos
EJEMPLO:
Suponer que existe la clase Vehículo
 El auto patente WF-4631 es una instancia de la
clase Vehículo, o sea, un objeto de esa clase

 La camioneta patente ZT-9283 es otra instancia
de la clase Vehículo
18
Atributos
Son los datos que caracterizan a los objetos de una
clase y determinan el estado de un objeto
 Marca
 Año
 Color
 Patente, etc.
19
Métodos
Representan todas aquellas acciones que se pueden
realizar sobre un objeto de cierta clase
En la implementación, estos métodos son
segmentos de código en la forma de funciones
La clase Vehículo puede incluir los métodos:
 Encender
 Acelerar
 Virar
 Frenar
20
Principios de la POO
Propiedades, que lo llevan a ser un estilo de
desarrollo que permite crear código re-utilizable
 Encapsulamiento
 Herencia
 Polimorfismo
21
ENCAPSULAMIENTO
Abstracción de Datos
22
Encapsulamiento
Proceso por el que se ocultan:
Las estructuras de datos
Los detalles de la implementación
 Permite considerar a los objetos como "cajas
negras", evitando que otros objetos accedan a
detalles que NO LES INTERESA
 Una vez creada la clase, las funciones usuarias no
requieren conocer los detalles de su implementación
23
Encapsulamiento
Toda clase tiene un conjunto de atributos y
métodos asociados a ella
Todos ellos están encapsulados o contenidos
dentro de la misma clase, de manera que son
miembros de dicha clase
Esos métodos y atributos pueden ser utilizados
por otras clases sólo si la clase que los encapsula
les brinda los permisos necesarios para ello
24
Encapsulamiento
Atributos de una Cuenta Corriente:
 Número
 Saldo
Métodos:
 Depositar
 Girar
 Conocer el saldo
¿Cómo se almacenan estos datos?
25
HERENCIA
Organización jerárquica
26
Herencia
Permite reutilizar código creando nuevas clases a
partir de las existentes (construidas y depuradas)
Compromete una relación de jerarquía (es-un)
Una nueva clase se generará agregando atributos
y/o código a una clase existente
Una clase (derivada) puede heredar de otra clase
(base):
Atributos y
Métodos
27
Herencia
E m p le a d o
S u e ld o
C lie n t e
C u e n t a
A lu m n o
C a r r e r a
P e r s o n a
N o m b r e
D ir e c c ió n
R U T
28
POLIMORFISMO
29
Polimorfismo
Capacidad que permite a dos clases diferentes
responder de forma distinta a un mismo mensaje
Esto significa que dos clases que tengan un método
con el mismo nombre y que respondan al mismo tipo
de mensaje (es decir, que reciban los mismo
parámetros), ejecutarán acciones distintas
30
Ejemplo 1:
Al presionar el acelerador esperamos que
aumente la velocidad del auto, independiente de
si se tiene un:
 Motor con carburador
 Motor con inyección electrónica
Polimorfismo
31
OBJETOS
'A'
3
MENSAJE
Sucesor RESULTADOS
'B'
4
Ejemplo 2:
Si se tienen las clases Entero y Char, ambas
responderán de manera distinta al mensaje
"Sucesor"
Polimorfismo
OBJETOS
33
Objetos
En la POO se dice que un objeto: "integra
datos y algoritmos"
En la programación estructurada, variables y
funciones están separadas
Clase
Objeto
Instanciación de objetos
Tipo
Variable
Declaración de variables
POO Procedural
34
Objetos
Cada objeto es responsable de inicializarse y
destruirse en forma correcta
Un objeto consta de:
 Tiempo de vida
 Estado
 Comportamiento
Atributos
Métodos
35
Tiempo de vida de un objeto
La duración de un objeto en un programa
siempre está limitada en el tiempo
La mayoría de los objetos sólo existen
durante una parte de la ejecución del
programa
Los objetos son creados mediante un
mecanismo denominado instanciación
Los objetos dejan de existir cuando son
destruidos
36
Queda definido por sus atributos
Con él se definen las propiedades del objeto,
y el estado en que se encuentra en un
momento determinado de su existencia
Estado de un objeto
37
Queda definido por los métodos
Los prototipos de los métodos definidos en la
interfaz de una clase permiten a otros
objetos, que forman parte de la aplicación,
interactuar con los objetos de esa clase
Comportamiento de un objeto
CLASES
39
Clases
Las clases son abstracciones que representan a un
conjunto de objetos con un:
 Comportamiento e
 Interfaz común
Es la implementación de un tipo de dato
(considerando los objetos como instancias de las
clases)
40
Clases
Permiten definir y representar colecciones de
objetos
Proveen un modelo para la creación de objetos
Los elementos que componen la clase son
Atributos
Métodos
Representan el estado de un objeto
(variables de ejemplar)
Representan el comportamiento de un
objeto (funciones miembro)
41
Ejemplo de instancia de objetos
Clase: Cuenta corriente
 Atributos:
 Número
 Nombre
 Saldo
 Métodos:
 Depositar
 Girar
 Consultar saldo
42
Ejemplo de instancia de objetos
Clase: Cuenta corriente
Instanciación: Cuenta Corriente A, B
Objeto: A
Métodos
Depositar
Girar
Consultar
Num: 1234
Nombre: Juan
Saldo: 350.000
Métodos
Depositar
Girar
Consultar
Num: 9876
Nombre: María
Saldo: 450.600
Objeto: B
MENSAJES
44
Mensaje
Mecanismo por el cual se solicita una acción sobre
el objeto
Un programa en ejecución es una colección de
objetos que se crean, interactúan y se detruyen
La interacción se basa en mensajes que son
enviados de un objeto a otro, de modo que el
emisor le pide al receptor la ejecución de un
método
45
Mensajes
Un objeto invoca un método como una reacción al
recibir un mensaje
La interpretación del mensaje dependerá del
receptor
MédicoPaciente
Mensaje
Recepcionista
MédicoPaciente
MÉTODOS
47
Métodos
Un método es una función miembro de una clase
Establece el comportamiento del objeto
Opera directamente sobre el objeto que lo
invocó
Recibe, como parámetro implícito, el objeto que
lo invocó
48
Métodos
Si el método requiere otros objetos de la clase,
éstos deberán ser pasados como parámetros
explícitos y el método sólo podrá acceder en
forma indirecta a estos objetos
Ejemplos:
 Depositar
 Girar
 Consultar
RESUMEN
50
Mensajes y métodos
Un objeto (agente emisor) envía un mensaje a otro
objeto (agente receptor)
El mensaje tiene codificada la petición de una acción
El mensaje incluye la información (argumentos)
necesaria para satisfacer la petición
Si el receptor acepta el mensaje, acepta la
responsabilidad de ejecutar la acción indicada
En respuesta a un mensaje, el receptor ejecuta un
método para satisfacer la petición
51
Clases y ejemplares
Todos los objetos son ejemplares de una clase
La clase del receptor determina el método que se
activa como respuesta a un mensaje
Todos los objetos de una clase usan el mismo
método en respuesta a mensajes similares
52
Clases y métodos
Los objetos son ejemplos de TAD’s
Un TAD tiene dos caras: una exterior, la que ve el
usuario, y una interior, la que sólo ve el programador
El usuario ve nada más que un conjunto de
operaciones que definen el comportamiento de la
abstracción
El programador ve las variables de datos que se
usan para mantener el estado interno del objeto
Un ejemplar es un representante de una clase
53
Clases y métodos
Una variable de ejemplar es una variable interna
mantenida por un ejemplar
Cada ejemplar tiene su propia colección de variables
de ejemplar
Las variables de ejemplar sólo son modificables por
los métodos definidos en la clase
Un objeto es la combinación de estado y
comportamiento
54
Clases y métodos
El estado lo determinan las variables de ejemplar
El comportamiento lo determinan los métodos
Desde el exterior, los clientes sólo pueden ver el
comportamiento de los objetos
Desde el interior, los métodos proporcionan el
comportamiento apropiado mediante las
modificaciones del estado
55
Clases y métodos
La interfaz describe la forma en que un objeto se
conecta con el mundo
La implementación describe cómo se logra la
responsabilidad prometida en la interfaz
Una clase se puede concebir como un registro con
dos variedades de campos: datos y procedimientos
Los datos constituyen las variables de ejemplar
Los procedimientos constituyen los métodos

Más contenido relacionado

La actualidad más candente

Programación Orientada a Objetos en Java - Parte I 2015
Programación Orientada a Objetos en Java - Parte I 2015Programación Orientada a Objetos en Java - Parte I 2015
Programación Orientada a Objetos en Java - Parte I 2015Renny Batista
 
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
 
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 objetosRenny Batista
 
Primeraclaseobjetos Clases
Primeraclaseobjetos ClasesPrimeraclaseobjetos Clases
Primeraclaseobjetos Clasesmtemarialuisa
 

La actualidad más candente (8)

Programación Orientada a Objetos
Programación Orientada a ObjetosProgramación Orientada a Objetos
Programación Orientada a Objetos
 
Programación Orientada a Objetos en Java - Parte I 2015
Programación Orientada a Objetos en Java - Parte I 2015Programación Orientada a Objetos en Java - Parte I 2015
Programación Orientada a Objetos en Java - Parte I 2015
 
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
 
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
 
Primeraclaseobjetos Clases
Primeraclaseobjetos ClasesPrimeraclaseobjetos Clases
Primeraclaseobjetos Clases
 
Conceptos basicos POO
Conceptos basicos POOConceptos basicos POO
Conceptos basicos POO
 
Primeraclaseobjetos clases
Primeraclaseobjetos clasesPrimeraclaseobjetos clases
Primeraclaseobjetos clases
 
Greenfoot 2
Greenfoot 2Greenfoot 2
Greenfoot 2
 

Similar a Poocpp2

Trabajo sistemas digitales
Trabajo sistemas digitalesTrabajo sistemas digitales
Trabajo sistemas digitalesDany7x
 
Proyecto en android completado
Proyecto en android completadoProyecto en android completado
Proyecto en android completadoKai Exo
 
Programación orientada a objetos
Programación orientada a objetosProgramación orientada a objetos
Programación orientada a objetosGladys Castillejos
 
Fundamentos del análisis orientado a objetos
Fundamentos del análisis orientado a objetosFundamentos del análisis orientado a objetos
Fundamentos del análisis orientado a objetosEduardo Galindo
 
Semanas01y02
Semanas01y02Semanas01y02
Semanas01y02luisortiz
 
Tema 1 programación orientada a objetos por gio
Tema 1   programación orientada a objetos por gioTema 1   programación orientada a objetos por gio
Tema 1 programación orientada a objetos por gioRobert Wolf
 
Unidad 3. obj 3.2 Programación Orientada a Objetos
Unidad 3. obj 3.2 Programación Orientada a ObjetosUnidad 3. obj 3.2 Programación Orientada a Objetos
Unidad 3. obj 3.2 Programación Orientada a ObjetosAlix Indriago
 
Unidad 1 Programación Orientada a Objetos (Programación III)
Unidad 1 Programación Orientada a Objetos (Programación III)Unidad 1 Programación Orientada a Objetos (Programación III)
Unidad 1 Programación Orientada a Objetos (Programación III)Servicio Tecnico de Computadoras
 
programacion orientada a objetos
programacion orientada a objetosprogramacion orientada a objetos
programacion orientada a objetosjent46
 
Programacion orientada-a-objetos
Programacion orientada-a-objetosProgramacion orientada-a-objetos
Programacion orientada-a-objetosDon Augusto
 
Primeraclaseobjetos Clases
Primeraclaseobjetos ClasesPrimeraclaseobjetos Clases
Primeraclaseobjetos Clasesmtemarialuisa
 

Similar a Poocpp2 (20)

POOCPP2.ppt
POOCPP2.pptPOOCPP2.ppt
POOCPP2.ppt
 
Poocpp2
Poocpp2Poocpp2
Poocpp2
 
Trabajo sistemas digitales
Trabajo sistemas digitalesTrabajo sistemas digitales
Trabajo sistemas digitales
 
Proyecto en android completado
Proyecto en android completadoProyecto en android completado
Proyecto en android completado
 
Programación orientada a objetos
Programación orientada a objetosProgramación orientada a objetos
Programación orientada a objetos
 
03 Oop
03   Oop03   Oop
03 Oop
 
Fundamentos del análisis orientado a objetos
Fundamentos del análisis orientado a objetosFundamentos del análisis orientado a objetos
Fundamentos del análisis orientado a objetos
 
Semanas01y02
Semanas01y02Semanas01y02
Semanas01y02
 
Semanas01y02
Semanas01y02Semanas01y02
Semanas01y02
 
Prog.orientada a objeto
Prog.orientada a objetoProg.orientada a objeto
Prog.orientada a objeto
 
Tema 1 programación orientada a objetos por gio
Tema 1   programación orientada a objetos por gioTema 1   programación orientada a objetos por gio
Tema 1 programación orientada a objetos por gio
 
Unidad 3. obj 3.2 Programación Orientada a Objetos
Unidad 3. obj 3.2 Programación Orientada a ObjetosUnidad 3. obj 3.2 Programación Orientada a Objetos
Unidad 3. obj 3.2 Programación Orientada a Objetos
 
Unidad II.pdf
Unidad II.pdfUnidad II.pdf
Unidad II.pdf
 
Unidad 1 Programación Orientada a Objetos (Programación III)
Unidad 1 Programación Orientada a Objetos (Programación III)Unidad 1 Programación Orientada a Objetos (Programación III)
Unidad 1 Programación Orientada a Objetos (Programación III)
 
3_Orientación a objeto
3_Orientación a objeto3_Orientación a objeto
3_Orientación a objeto
 
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
 
Primeraclaseobjetos Clases
Primeraclaseobjetos ClasesPrimeraclaseobjetos Clases
Primeraclaseobjetos Clases
 
Programacion
ProgramacionProgramacion
Programacion
 
UT05-POO.pdf
UT05-POO.pdfUT05-POO.pdf
UT05-POO.pdf
 

Más de Leotom

Ex baspra4
Ex baspra4Ex baspra4
Ex baspra4Leotom
 
Ex baspra3
Ex baspra3Ex baspra3
Ex baspra3Leotom
 
Ex baspra2
Ex baspra2Ex baspra2
Ex baspra2Leotom
 
Ex baspra1
Ex baspra1Ex baspra1
Ex baspra1Leotom
 
Tutorial prezi.docx
Tutorial prezi.docxTutorial prezi.docx
Tutorial prezi.docxLeotom
 
Contabilidad noveno # 2
Contabilidad noveno # 2Contabilidad noveno # 2
Contabilidad noveno # 2Leotom
 
Contabilidad noveno # 1
Contabilidad noveno # 1Contabilidad noveno # 1
Contabilidad noveno # 1Leotom
 
Basica noveno
Basica novenoBasica noveno
Basica novenoLeotom
 
Ciclo vi
Ciclo viCiclo vi
Ciclo viLeotom
 
Ciclo vi
Ciclo viCiclo vi
Ciclo viLeotom
 
Topologias de redes
Topologias de redesTopologias de redes
Topologias de redesLeotom
 
Regimenes
RegimenesRegimenes
RegimenesLeotom
 
Pseudocodigos y diagramas de flujo
Pseudocodigos y diagramas de flujoPseudocodigos y diagramas de flujo
Pseudocodigos y diagramas de flujoLeotom
 
Ponchar un cable utp
Ponchar un cable utpPonchar un cable utp
Ponchar un cable utpLeotom
 
Taller # 2
Taller # 2Taller # 2
Taller # 2Leotom
 
Taller # 1
Taller # 1Taller # 1
Taller # 1Leotom
 
Excel basico ejercicios
Excel basico ejerciciosExcel basico ejercicios
Excel basico ejerciciosLeotom
 
10 plan de mejoramiento 2
10 plan de mejoramiento 210 plan de mejoramiento 2
10 plan de mejoramiento 2Leotom
 
10 plan de mejoramiento 1
10 plan de mejoramiento 110 plan de mejoramiento 1
10 plan de mejoramiento 1Leotom
 
9 taller de recuperacion
9 taller de recuperacion9 taller de recuperacion
9 taller de recuperacionLeotom
 

Más de Leotom (20)

Ex baspra4
Ex baspra4Ex baspra4
Ex baspra4
 
Ex baspra3
Ex baspra3Ex baspra3
Ex baspra3
 
Ex baspra2
Ex baspra2Ex baspra2
Ex baspra2
 
Ex baspra1
Ex baspra1Ex baspra1
Ex baspra1
 
Tutorial prezi.docx
Tutorial prezi.docxTutorial prezi.docx
Tutorial prezi.docx
 
Contabilidad noveno # 2
Contabilidad noveno # 2Contabilidad noveno # 2
Contabilidad noveno # 2
 
Contabilidad noveno # 1
Contabilidad noveno # 1Contabilidad noveno # 1
Contabilidad noveno # 1
 
Basica noveno
Basica novenoBasica noveno
Basica noveno
 
Ciclo vi
Ciclo viCiclo vi
Ciclo vi
 
Ciclo vi
Ciclo viCiclo vi
Ciclo vi
 
Topologias de redes
Topologias de redesTopologias de redes
Topologias de redes
 
Regimenes
RegimenesRegimenes
Regimenes
 
Pseudocodigos y diagramas de flujo
Pseudocodigos y diagramas de flujoPseudocodigos y diagramas de flujo
Pseudocodigos y diagramas de flujo
 
Ponchar un cable utp
Ponchar un cable utpPonchar un cable utp
Ponchar un cable utp
 
Taller # 2
Taller # 2Taller # 2
Taller # 2
 
Taller # 1
Taller # 1Taller # 1
Taller # 1
 
Excel basico ejercicios
Excel basico ejerciciosExcel basico ejercicios
Excel basico ejercicios
 
10 plan de mejoramiento 2
10 plan de mejoramiento 210 plan de mejoramiento 2
10 plan de mejoramiento 2
 
10 plan de mejoramiento 1
10 plan de mejoramiento 110 plan de mejoramiento 1
10 plan de mejoramiento 1
 
9 taller de recuperacion
9 taller de recuperacion9 taller de recuperacion
9 taller de recuperacion
 

Poocpp2

  • 2. 2 Introducción Paradigma: Ejemplo ilustrativo, enunciado modelo  Programación imperativa  Programación funcional  Programación lógica Nuevo Paradigma:  Programación Orientada a Objetos (POO)
  • 4. 4 Programación Orientada a Objetos Métodos DATOS Métodos DATOS Métodos Métodos DATOS DATOS
  • 5. 5 Facilita la creación de software de calidad pues sus características potencian:  La mantención  La extensión y  La reutilización del software generado bajo este paradigma La POO se basa en la idea natural de un mundo lleno de objetos y que la resolución de problemas se realiza mediante el modelo de objetos POO
  • 6. 6 La visión de Objetos: Mesas Sillas Computadores Autos Cuentas bancarias Partidos de fútbol Perros, etc POO
  • 7. 7 Los objetos se pueden Organizar según su necesidad Mamíferos : Perro, Ciervo Teléfonos : Fijo, Celular Deportes : Fútbol, Tenis Vehículos : Automóvil, Camión POO
  • 9. 9 La base de esta tecnología es: Modelamiento Modelar con base en Entidades Los problemas que se desea resolver Relevantes y tangibles en el problema
  • 10. 10 El modelo define una perspectiva abstracta del problema  Los datos que son afectados  Las operaciones que se aplican sobre los datos Abstracción
  • 11. 11 Ejemplo Para la administración docente, las entidades que participan son: Administr. Docente Profesores Asignaturas Alumnos Salas
  • 12. 12 POO Identificar los objetos importantes Organizar los objetos en jerarquías Otorgar, a los objetos, atributos relevantes que describan sus características Proveer, a cada objeto, las funciones inherentes a su comportamiento
  • 13. 13 Conceptos de la POO La POO trata de aproximarse al modo de actuar del hombre y no al de la máquina Conceptos fundamentales que sustentan la POO:  Clase  Objeto  Instancia  Atributos  Métodos
  • 14. 14 Clase Una clase es como un tipo de dato creado por el usuario, que posee dos categorías de miembros:  Atributos (Datos) ⇒ Estado  Métodos (Algoritmos) ⇒ Comportamiento
  • 15. 15 Clase En general, es posible crear una clase a partir de cualquier objeto que esté a nuestro alrededor. Por ejemplo:  Persona  Automóvil  Mascota
  • 16. 16 Instancias-Objetos Una Instancia es una ocurrencia de la clase Al momento de crear un objeto se produce la instanciación Un Objeto es una instancia de una Clase específica
  • 17. 17 Instancias-Objetos EJEMPLO: Suponer que existe la clase Vehículo  El auto patente WF-4631 es una instancia de la clase Vehículo, o sea, un objeto de esa clase   La camioneta patente ZT-9283 es otra instancia de la clase Vehículo
  • 18. 18 Atributos Son los datos que caracterizan a los objetos de una clase y determinan el estado de un objeto  Marca  Año  Color  Patente, etc.
  • 19. 19 Métodos Representan todas aquellas acciones que se pueden realizar sobre un objeto de cierta clase En la implementación, estos métodos son segmentos de código en la forma de funciones La clase Vehículo puede incluir los métodos:  Encender  Acelerar  Virar  Frenar
  • 20. 20 Principios de la POO Propiedades, que lo llevan a ser un estilo de desarrollo que permite crear código re-utilizable  Encapsulamiento  Herencia  Polimorfismo
  • 22. 22 Encapsulamiento Proceso por el que se ocultan: Las estructuras de datos Los detalles de la implementación  Permite considerar a los objetos como "cajas negras", evitando que otros objetos accedan a detalles que NO LES INTERESA  Una vez creada la clase, las funciones usuarias no requieren conocer los detalles de su implementación
  • 23. 23 Encapsulamiento Toda clase tiene un conjunto de atributos y métodos asociados a ella Todos ellos están encapsulados o contenidos dentro de la misma clase, de manera que son miembros de dicha clase Esos métodos y atributos pueden ser utilizados por otras clases sólo si la clase que los encapsula les brinda los permisos necesarios para ello
  • 24. 24 Encapsulamiento Atributos de una Cuenta Corriente:  Número  Saldo Métodos:  Depositar  Girar  Conocer el saldo ¿Cómo se almacenan estos datos?
  • 26. 26 Herencia Permite reutilizar código creando nuevas clases a partir de las existentes (construidas y depuradas) Compromete una relación de jerarquía (es-un) Una nueva clase se generará agregando atributos y/o código a una clase existente Una clase (derivada) puede heredar de otra clase (base): Atributos y Métodos
  • 27. 27 Herencia E m p le a d o S u e ld o C lie n t e C u e n t a A lu m n o C a r r e r a P e r s o n a N o m b r e D ir e c c ió n R U T
  • 29. 29 Polimorfismo Capacidad que permite a dos clases diferentes responder de forma distinta a un mismo mensaje Esto significa que dos clases que tengan un método con el mismo nombre y que respondan al mismo tipo de mensaje (es decir, que reciban los mismo parámetros), ejecutarán acciones distintas
  • 30. 30 Ejemplo 1: Al presionar el acelerador esperamos que aumente la velocidad del auto, independiente de si se tiene un:  Motor con carburador  Motor con inyección electrónica Polimorfismo
  • 31. 31 OBJETOS 'A' 3 MENSAJE Sucesor RESULTADOS 'B' 4 Ejemplo 2: Si se tienen las clases Entero y Char, ambas responderán de manera distinta al mensaje "Sucesor" Polimorfismo
  • 33. 33 Objetos En la POO se dice que un objeto: "integra datos y algoritmos" En la programación estructurada, variables y funciones están separadas Clase Objeto Instanciación de objetos Tipo Variable Declaración de variables POO Procedural
  • 34. 34 Objetos Cada objeto es responsable de inicializarse y destruirse en forma correcta Un objeto consta de:  Tiempo de vida  Estado  Comportamiento Atributos Métodos
  • 35. 35 Tiempo de vida de un objeto La duración de un objeto en un programa siempre está limitada en el tiempo La mayoría de los objetos sólo existen durante una parte de la ejecución del programa Los objetos son creados mediante un mecanismo denominado instanciación Los objetos dejan de existir cuando son destruidos
  • 36. 36 Queda definido por sus atributos Con él se definen las propiedades del objeto, y el estado en que se encuentra en un momento determinado de su existencia Estado de un objeto
  • 37. 37 Queda definido por los métodos Los prototipos de los métodos definidos en la interfaz de una clase permiten a otros objetos, que forman parte de la aplicación, interactuar con los objetos de esa clase Comportamiento de un objeto
  • 39. 39 Clases Las clases son abstracciones que representan a un conjunto de objetos con un:  Comportamiento e  Interfaz común Es la implementación de un tipo de dato (considerando los objetos como instancias de las clases)
  • 40. 40 Clases Permiten definir y representar colecciones de objetos Proveen un modelo para la creación de objetos Los elementos que componen la clase son Atributos Métodos Representan el estado de un objeto (variables de ejemplar) Representan el comportamiento de un objeto (funciones miembro)
  • 41. 41 Ejemplo de instancia de objetos Clase: Cuenta corriente  Atributos:  Número  Nombre  Saldo  Métodos:  Depositar  Girar  Consultar saldo
  • 42. 42 Ejemplo de instancia de objetos Clase: Cuenta corriente Instanciación: Cuenta Corriente A, B Objeto: A Métodos Depositar Girar Consultar Num: 1234 Nombre: Juan Saldo: 350.000 Métodos Depositar Girar Consultar Num: 9876 Nombre: María Saldo: 450.600 Objeto: B
  • 44. 44 Mensaje Mecanismo por el cual se solicita una acción sobre el objeto Un programa en ejecución es una colección de objetos que se crean, interactúan y se detruyen La interacción se basa en mensajes que son enviados de un objeto a otro, de modo que el emisor le pide al receptor la ejecución de un método
  • 45. 45 Mensajes Un objeto invoca un método como una reacción al recibir un mensaje La interpretación del mensaje dependerá del receptor MédicoPaciente Mensaje Recepcionista MédicoPaciente
  • 47. 47 Métodos Un método es una función miembro de una clase Establece el comportamiento del objeto Opera directamente sobre el objeto que lo invocó Recibe, como parámetro implícito, el objeto que lo invocó
  • 48. 48 Métodos Si el método requiere otros objetos de la clase, éstos deberán ser pasados como parámetros explícitos y el método sólo podrá acceder en forma indirecta a estos objetos Ejemplos:  Depositar  Girar  Consultar
  • 50. 50 Mensajes y métodos Un objeto (agente emisor) envía un mensaje a otro objeto (agente receptor) El mensaje tiene codificada la petición de una acción El mensaje incluye la información (argumentos) necesaria para satisfacer la petición Si el receptor acepta el mensaje, acepta la responsabilidad de ejecutar la acción indicada En respuesta a un mensaje, el receptor ejecuta un método para satisfacer la petición
  • 51. 51 Clases y ejemplares Todos los objetos son ejemplares de una clase La clase del receptor determina el método que se activa como respuesta a un mensaje Todos los objetos de una clase usan el mismo método en respuesta a mensajes similares
  • 52. 52 Clases y métodos Los objetos son ejemplos de TAD’s Un TAD tiene dos caras: una exterior, la que ve el usuario, y una interior, la que sólo ve el programador El usuario ve nada más que un conjunto de operaciones que definen el comportamiento de la abstracción El programador ve las variables de datos que se usan para mantener el estado interno del objeto Un ejemplar es un representante de una clase
  • 53. 53 Clases y métodos Una variable de ejemplar es una variable interna mantenida por un ejemplar Cada ejemplar tiene su propia colección de variables de ejemplar Las variables de ejemplar sólo son modificables por los métodos definidos en la clase Un objeto es la combinación de estado y comportamiento
  • 54. 54 Clases y métodos El estado lo determinan las variables de ejemplar El comportamiento lo determinan los métodos Desde el exterior, los clientes sólo pueden ver el comportamiento de los objetos Desde el interior, los métodos proporcionan el comportamiento apropiado mediante las modificaciones del estado
  • 55. 55 Clases y métodos La interfaz describe la forma en que un objeto se conecta con el mundo La implementación describe cómo se logra la responsabilidad prometida en la interfaz Una clase se puede concebir como un registro con dos variedades de campos: datos y procedimientos Los datos constituyen las variables de ejemplar Los procedimientos constituyen los métodos