Profesor Miguel Cantillana
INS240 – Lenguajes de Programación
Ingeniería en Computación e Informática
Semestre 2017-1
Introducción a Programación orientada a objetos
La Programación Orientada a Objetos (POO) es un método de programación en el cual los programas se organizan en colecciones cooperativas de objetos, cada uno de los cuales representa una instancia de alguna clase, y cuyas clases son, todas ellas, miembros de una jerarquía de clases unidas mediante relaciones de herencia.
Facilita la creación de software de calidad pues sus características potencian:
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
La visión de Objetos:
Los objetos se pueden Organizar según su necesidad
El modelo define una perspectiva abstracta del problema
Para la administración docente, las entidades que participan son:
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
Una clase es como un tipo de dato creado por el usuario, que posee dos categorías de miembros:
En general, es posible crear una clase a partir de cualquier objeto que esté a nuestro alrededor.
Por ejemplo:
EJEMPLO:
Suponer que existe la clase Vehículo
Son los datos que caracterizan a los objetos de una clase y determinan el estado de un objeto
Propiedades, que lo llevan a ser un estilo de desarrollo que permite crear código re-utilizable:
Nos permite trabajar con la complejidad del mundo real
Resaltando los aspectos relevantes de los objetos de una clase
Ocultando los detalles particulares de cada objeto
Separaremos el comportamiento de la implementación
Es más importante saber qué se hace en lugar de cómo se hace:
Un sensor de temperatura
Se define porque...
mide la temperatura
nos muestra su valor
se puede calibrar...
No sabemos... (no nos importa)
cómo mide la temperatura
de qué está hecho
cómo se calibra
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
Atributos de una Cuenta Corriente:
Número
Saldo
Métodos:
Depositar
Girar
Conocer el saldo
¿Cómo se almacenan estos datos?
Es una clasificación u ordenamiento de las abstracciones
Hay dos jerarquías fundamentales:
Estructura de clases:
Jerarquía “es un/a”
Relaciones de herencia
Estructura de objetos:
Jerarquía “parte de”
Relaciones de agregación
Ejemplo: Figuras planas y diagramas
Una figura plana es:
Herencia simple
Ejemplo: Figuras planas y diagramas
Herencia múltiple
Ejemplo: Figuras planas y diagramas
Agregación
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
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
Ejemplo 2:
Si se tienen las clases Entero y Char, ambas responderán de manera distinta al mensaje "Sucesor"
POO
Procedural
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
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
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
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)
Permiten definir y representar colecciones de objetos
Proveen un modelo para la creación de objetos
Los elementos que componen la clase son:
Atributos: Representan el estado de un objeto
Métodos: Representan el comportamiento de un objeto
Clase: Cuenta corriente
Atributos:
Número
Nombre
Saldo
Métodos:
Depositar
Girar
Consultar saldo
Clase: Cuenta corriente
Instanciación: Cuenta Corriente A, B
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
Un objeto invoca un método como una reacción al recibir un mensaje
La interpretación del mensaje dependerá del receptor
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ó
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
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
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
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
Una variable de ejemplar (atributo) es una variable interna mantenida por un ejemplar (objeto)
Cada ejemplar (objeto) tiene su propia colección de variables de ejemplar (atributos)
Las variables de ejemplar (atributos) sólo son modificables por los métodos definidos en la clase
Un objeto es la combinación de estado y comportamiento
El estado lo determinan las variables de ejemplar (atributos)
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
Una clase se puede concebir como un registro con dos variedades de campos: datos y procedimientos
Los datos constituyen las variables de ejemplar (atributos)
Los procedimientos constituyen los métodos