Orientación a Objetos
Isaura Ramirez
Created on April 21, 2022
More creations to inspire you
ENGLISH IRREGULAR VERBS
Presentation
VISUAL COMMUNICATION AND STORYTELLING
Presentation
GROWTH MINDSET
Presentation
BLENDED LEARNING
Presentation
INTRO INNOVATE
Presentation
SUMMER ZINE 2018
Presentation
FALL ZINE 2018
Presentation
Transcript
ORIENTACIÓN A
Ing. Erika Marín Schumann
OBJETOS
Basic
FortranCobol
CPascal
Algunos lenguajes
División por "verbos" (funciones)
Descomponer problemas en problemas más pequeños
Programaciónestructurada
Definir tareas a llevar a cabo. Descomponer las tareas en partes más pequeñas. Definir Estructuras de Datos por manipular. Diseñar interacción entre funciones:
- Entradas
- Salidas
Programación estructurada
¿Qué es poo?
Modelo de Programación organizado alrededor de objetos. Entidades que:
- Implementan un comportamiento
- Modelan información
- Interactúan entre sí
Lenguaje procedural --> Todo es procedure. Lenguaje funcional --> Todo es función. Lenguaje lógico --> Todo es predicado (Expr. Lógica) Lenguaje o-o --> Todo es objeto .
Facilita el mantenimiento:
- Errores y cambios son localizados.
- Métodos suelen ser más pequeños.
- No existen variables globales.
- Ocultamiento de datos y lógica de procesamiento
- Métodos suelen ser más pequeños.
Facilidad de modelado.Reutilización de código y modelos: Las nuevas abstracciones son definidas como extensiones o refinamientos de las existentes.Promueve la alta cohesión y el bajo acoplamiento.Independencia entre componentes
beneficios
Un programa se estructura como una comunidad de agentes que interactúan entre sí denominados objetos. Cada objeto tiene un rol y provee un servicio o lleva a cabo una acción que es utilizada por otros miembros de la comunidad.
aplicaciones
conceptos fundamentales
- Abstracción
- Encapsulamiento
- Modularidad
- Herencia
- Polimorfismo
ABSTRACCIÓN
Es un medio fundamental usado por el ser humano para enfrentarse a la complejidad del mundo. Consiste en describir o especificar aspectos esenciales e importantes de un fenómeno o entidad, al mismo tiempo que se desechan características irrelevantes según el interés de quien realiza la abstracción.
los aspectos esenciales e importantes
Pueden ser características o atributos del objeto observado.Pueden ser comportamientos o acciones llevadas a cabo por el objeto observado
menos detalle
más detalle
Niveles de Abstracción
El problema más importante del modelado orientado a objetos es la elección de las abstracciones pertinentes.Muy ligados a la abstracción se tienen los siguientes conceptos:
- Clases
- Objetos
Niveles de Abstracción
traducción
modelo computacional
abstracción
modelo conceptual
problema
mundo real
modularidad
polimorfismo
herencia
encapsulamiento
Abstracción
encapsulamiento
La abstracción se centra en la estructura (características o atributos) y comportamiento (acciones) observable de un objeto.El encapsulamiento se centra en la implementación que da lugar a ese comportamiento.Hacer que la implementación de una abstracción esté oculta y que dicha abstracción solo sea accedida por medio de su interfaz permite que la implementación pueda ser cambiada o hasta sustituida por otra sin alterar para nada los clientes que la usan.
Programas que acceden la funcionalidadx = elevar (2, 3)x = elevar (2, 3)x = elevar (2, 3)w = elevar (2,3)
int elevar (inta, intb){ if (b == 0) return1; else return a * elevar (a, b-1);}
def elevar (a, b):return pow (a,b)
def elevar (a, b):if b==0:return 1 else:return a * elevar (a, b-1)
def elevar (a, b):resultado = 1while b >= 0 :if b == 0:return resultado else:resultado = resultado * ab = b -1
objeto A
objeto B
mensaje
Ocultar los detalles de implementación de
- estado (variables)
- comportamiento (pasos para llevar a cabo acciones) del objeto.
- Modularidad
- Ocultamiento de Información
- Reutilización de Código
- Facilidad de Depuración y Reemplazo
- Difícil de entender
- Difícil de modificar
código espagueti
Sólo pueden verse dentro de la clase
Puede ser accedido desde afuera de la clase
público vs privado
Cada miembro tiene visibilidad
- Público
- Privado
- Todos los atributos deben ser privados
- Los métodos en general son públicos, pero algunos pueden ser privados
La modularidad agrupa las abstracciones relacionadas en unidades discretas.El objetivo de fondo de la modularidad es la reducción de complejidad, al permitir que los módulos se diseñen y revisen independientemente (divide y vencerás).
modularidad
Organizar aplicaciones a nivel interno.El paquete crea un espacio de nombres (namespace) para todas las clases relacionadas.
Permite que una clase tenga (Herede) el mismo comportamiento que otra de modo que lo pueda extender o ajustar.La clase que hereda de otro se denomina subclase.La clase que es extendida por una subclase se denomina superclase.
herencia
Algunas clases pueden tener partes en comúnHerencia:Una clase tiene los mismos miembros que otra, pero agrega nuevosHeredan sus miembros de clases preexistentes llamadas clases base, superclases, clases padre, clase ancestroLa clase resultante se llama clase derivada, subclase, clase hija, clase descendiente
generalización
especialización
subclase
HERENCIA
superclase
"es un" vs "tiene un"
La herencia no se usa siempre. Hay que pensar antes de usarla para ver si existe algún tipo de relaciónCorrecto
- Instancias son versiones más específicas del padre
- Ej.: un gato es un tipo de mamífero
- Relaciones de composición
- La clase forma parte de otra
- Ej.: Automóvil tiene un volante
Muchas cosas en la realidad siguen una estructura jerárquicaCuando una clase es especialización de otra clase, agrega miembros nuevosEn la práctica las clases modelan objetos abstractos
- No es tan obvio saber cuáles heredan de otras
- Si se identifican se reduce la complejidad y repetición de código
¿Cuándo usar herencia?
HERENCIA MÚLTIPLERelación de herencia entre una clase y varias superclasesLa subclase incluye los miembros de las dos superclasesAlgunos lenguajes la permiten, otros noDeben establecerse mecanismos para manejar colisiones y regular la forma en que se lleva a cabo la composiciónHERENCIA CIRCULARNo es permitido!
"tuyo"
"yo"
"tu"
Se da de dos formas:
- Métodos: un mismo nombre se asocia a comportamientos diferentes
- Datos: una clase puede ser tratada como una de sus superclases.
polimorfismo
Es una plantilla o molde para un conjunto de objetosDescribe cómo se estructuran internamente los objetos (atributos), cuáles servicios proveen (métodos), cuáles relaciones comunes tienen con otros objetos
clase
Es un modelo de comportamiento de un tipo de objeto que existirá durante la ejecución de un programa orientado a objetos.De un modo aproximado, las clases son a sus objetos lo que los tipos primitivos son a sus variables
- Generalización de los tipos de datos.
- Permite definir nuevos tipos.
- Modelo de comportamiento de un tipo de objeto que existirá durante la ejecución de un programa orientado a objetos.
- Definida por sus miembros.
¿Atributos? ¿Métodos?
CLASE PERSONA
ATRIBUTOS
- Datos que representan las características de la clase
- Tipos de datos nativos u otras clases
- Operaciones que actúan sobre los atributos
Es un concepto o entidad con límites bien definidos y con significado para un problema planteadoPosee un estado, exhibe un comportamiento bien definido y posee una identidad única:Objeto= Estado + Comportamiento + IdentidadLos valores de los atributos definen el estado del objeto.
OBJETO
Los métodos especifican los mensajes que puede recibir un objeto y los cambios que producen en el objeto en cuestión, es decir, su comportamiento.Estado y comportamiento están relacionados:
- El estado puede ser modificado cuando el objeto interactúa (por medio de mensajes) con otros objetos
- El estado del objeto puede eventualmente determinar el comportamiento del objeto en cuestión
Todos los objetos son instancias de alguna clase
CLASES Y OBJETOS
métodos
variables
- Clases: definen aspectos comunes.
- Objetos: poseen un estado.
CLASES Y OBJETOS
COMPORTAMIENTOsubir/bajar volumencambiar tonocambiar bandaenceder/apagarseleccionar frecuenciaintroducir CD
ESTADOvalor del volumenvalor del tonoAM/FMapagado/encendidofrecuencia seleccionadaCD introducido
estado
Los objetos se comunican por medio de mensajes u órdenesLos componentes del mensaje son:
- El objeto destinatario del mensaje
- El nombre del mensaje, que describe la tareaa realizar (el nombre del método)
- La información que el objeto origen envía al destinatario, necesaria para que éste pueda completar su tarea (los parámetros del método)
mensajes
subir volúmen (2)
seleccionar frecuencia (98.5)
cambiar banda (FM)
encender
COMPORTAMIENTOsubir/bajar volumencambiar tonocambiar bandaenceder/apagarseleccionar frecuenciaintroducir CD
ESTADOvalor del volumenvalor del tonoAM/FMapagado/encendidofrecuencia seleccionadaCD introducido
pasos para realizar la acción
-responsable-realiza una ACCIÓN
receptor
MENSAJE
Centrado en Funciones se entiende: SUM(2,5) = 7En POO puro:N2.sume(N5) = N7N2 Es unainstanciade número que entien de el mensaje“sume”
MensajesPOO vs FUNCIONES
Diseño y colaboraciónMA. Isaura Ramírez BrenesTEC Digital
Ing. Erika Marín Schumanneshuman@itcr.ac.cr