Principios Básicos de Orientación a Objetos Orientación a Objetos Abstracción Encapsulación Modularidad Jerarquia
Qué es Abstracción? Es la capacidad de conceptualizar entidades genéricas de información a partir de cosas concretas Se enfatizan características comunes que interesan Se ignoran otras características Sistema de Procesamiento de Ordenes Cliente Producto Vendedor La Abstracción Minimiza la Complejidad
Qué es Encapsulación? Es la capacidad de esconder los detalles de como funciona una cosa (la implementación), detras de un interface Solo se necesita conocer el interface para poder usar la cosa El usuario no se ve afectado si se cambia o mejora el funcionamiento interno de la cosa, mientras se mantenga el interface La Encapsulación Esconde la Complejidad
Que es Polimorfismo? Es la habilidad de esconder diferentes implementaciones tras un solo interface Marca A Marca B Marca C Principio de OO: Encapsulación
Qué es Modularidad? Es la capacidad de particionar algo complejo y dificil de manejar, en partes mas sencillas y fáciles de manejar Sistema de Procesamiento de Órdenes Facturación Envio de Órdenes Cobros La Modularidad Administra la Complejidad
Qué es Jerarquía? Más Abstracto La capacidad de manejar niveles de abstracción Activo Cuenta Bancaria Valores Bienes Raíces Menos Abstracto Ahorros Cheques Acciones Bonos Casas Edificios Los elementos al mismo nivel de jerarquía deben estar al mismo nivel de abstracción La Jeraquia Organiza la Complejidad
Qué es Herencia? Es la capacidad de los elementos de una jerarquía, de transmitir sus características desde los niveles mas abstractos a los mas concretos Activo Valor Cuenta Bancaria Valores Bienes Raíces Valor Valor Valor Numero Cuenta Emisor Ubicacion Ahorros Cheques Acciones Bonos Casas Edificios Valor Valor Valor Valor Valor Valor Numero Cuenta Numero Cuenta Emisor Emisor Ubicacion Ubicacion
Qué es un Objeto? Informalmente, un objeto representa a una entidad, ya sea física, conceptual o software Entidad física Camión Entidad conceptual Proceso Químico Entidad de Software Lista Enlazada
Una Definición más Formal Un objeto es un concepto, abstracción o cosa con fronteras definidas y con sentido para una aplicación Un objeto es algo que tiene: Estado Comportamiento Identidad
Un Objeto tiene Estado El estado de un objeto es una de las posibles condiciones en que un objeto puede existir El estado de un objeto normalmente cambia con el tiempo El estado de un objeto es usualmente implementado por un conjunto de propiedades llamadas atributos, mas los enlaces que el objeto pueda tener con otros objetos El estado lo establecen los valores de los atributos y enlaces ƒ= (γa/π) Profesora Clark Nombre: Joyce Clark Id Empleado: 4322456 Contratación: 01/06/1995 Puesto: Profesora Titular
Un Objeto tiene Comportamiento El comportamiento determina como un objeto actúa y reacciona El comportamiento define la manera en la que un objeto responde a las peticiones de otros objetos El comportamiento visible de un objeto se modela con un conjunto de mensajes a los que el puede responder Los mensajes se implementan como las operaciones del objeto Asignar a Profesora Clark a dar Calculo Integral 332 Oficial de Registro Jimenez (Devuelve: confirmación) Profesora Clark
Un Objeto tiene Identidad Cada objeto tiene una identidad única, aun si su estado en un momento dado, es idéntico al de otros objetos Profesor J. Pérez Enseña Matemáticas Profesor J. Pérez Enseña Matemáticas Profesor J. Pérez Enseña Matemáticas
Representando Objetos con UML Existen varios tipos de diagramas de UML que deben incluir objetos; un objeto se representa con un rectangulo que contiene el nombre del objeto, subrayado El nombre del objeto puede representarse en tres formatos distintos dependiendo de si se quiere hacer referencia a un objeto específico (usualmente al modelar un escenario de CU) o a un objeto generico Objeto Específico Solo Nombre del Objeto Nombres de Clase* y Objeto ƒ= (γa/π) Objeto Genérico Solo Nombre de Clase* Joyce Clark Joyce Clark:Profesor Profesora Joyce Clark :Profesor * Pronto se definira lo que es Clase
Qué son Clases? Cuando se han identificado muchos objetos en un dominio, decimos que una clase es una abstracción que describe un grupo de objetos que tienen: propiedades en común (atributos) comportamiento en común (operaciones) relaciones comunes con otros objetos (asociaciones) semántica en común (descripción breve) Una clase es una abstracción porque: enfatiza características relevantes al sistema suprime otras características
La Relación entre Clases y Objetos Una clase en una definición abstracta de un objeto Define la estructura y comportamiento de cada objeto en la clase Sirve como una plantilla para crear objetos Un objeto es una instancia concreta de una clase Los objetos pueden agruparse en clases Clase Estudiante A. Pineda E. Gomez G. Rodríguez
Ejemplo de Clase Estructura Nombre Aula Créditos Días Hora de Inicio Hora Final Clase Seccion ƒ= (γa/π) Comportamiento Añadir un Estudiante Eliminar un Estudiante Ver si está lleno
Clases y Objetos Cuántas clases ve usted?