Este documento presenta conceptos clave de la programación orientada a objetos como objetos, clases, métodos, encapsulamiento, herencia y polimorfismo. Explica que la programación orientada a objetos modela el mundo real a través de objetos que interactúan mediante mensajes, y que las clases definen atributos y comportamientos comunes para colecciones de objetos.
2. Principios de la Programación Estructurada
Los programas consisten en una serie de acciones que se
ejecutan en secuencia
Todas las estructuras cuentan con
un solo punto de entrada y un solo
punto de salida
Sólo hay una forma de entrar en
cada estructura de control y sólo
hay una forma de salir de ella.
3. Se basa en modelar el mundo real; trabaja con objetos en el sistema
que interactúan unos con otros a través de mensajes. Proporciona los
recursos para ocuparse de los objetos de un sistema complejo
La programación orientada a objetos
no debe confundirse con un lenguaje
programación orientado a objetos
4. Ejemplo:
a. Problema: Una persona necesita ver televisión.
b. Solución: Existen 3 elementos o agentes que se pueden
abstraer del problema
ELEMENTO DESCRIPCION
Persona Tiene sus propios atributos: Color piel, Altura, genero, Color ojos, Cabello, etc. Y tiene un
comportamiento: Ver , escuchar, hablar, etc.
Control
Remoto
Tiene sus propios atributos: Tamaño, color, tipo, batería, etc. Y tiene un comportamiento:
Enviar señal, codificar señal, cambiar canal, aumentar volumen, ingresar a menú, prender
TV etc.
Televisor Tiene sus propios atributos: pulgadas, tipo, numero parlantes, marca , etc. Y tiene un
comportamiento: Decodificar señal, prender, apagar, emitir señal, emitir audio, etc.
5. Considerada como técnica de
programación consiste en ampliar
el lenguaje existente con nuevas
operaciones y tipos de datos
definidos por el usuario.
Considerada como técnica de
diseño, consiste en dedicar módulos
separados a la realización de cada
tipo abstracto de datos y cada
función importante.
NO SUSTITUYE A LA PROGRAMACIÓN ESTRUCTURADA,
SINO MÁS BIEN LA EXTIENDE
6.
7. Permite a una persona concentrarse en los aspectos
esenciales del problema a la mano, mientras ignora
detalles que tienden a distraer; en una manera
conveniente de manejar la complejidad. Por lo tanto, la
abstracción, es eliminar lo innecesario
8. La esencia del encapsulamiento recae en que cuando un
objeto trae consigo su funcionalidad, esta última se
oculta. La utilidad se ve en la reducción de complejidad,
esto es debido a que las Clases se comportan como
cajas negras donde solo se conoce el comportamiento
pero no los detalles internos, y esto es conveniente
porque solo interesa saber que hace la Clase pero no
como lo hace
En la orientación a objetos, el
encapsulamiento ayuda a mantener
junto los elementos de datos, así como
las funciones y procedimientos que
operan sobre ellos. En otros
paradigmas, como el procedimental
(programación orientada a
procedimientos, el cual un programa
es estructurado en base a sus
funciones) los datos y operaciones se
mantienen separados
9. Es la posibilidad de hacer que una
operación exhiba diferentes
comportamientos en instancias
diferentes. El comportamiento
depende de los tipos de datos
usados en diferentes operaciones.
La correspondencia entre la
llamada actual y la implementación
de la funcionalidad dependerá de
los argumentos pasados con la
llamada. Polimorfismo significa,
“un nombre, múltiples
funcionalidades”.
10. Las clases no están aisladas, sino que se
relacionan entre sí, formando una jerarquía de
clasificación. Los objetos heredan las
propiedades y el comportamiento de todas las
clases a las que pertenecen. La herencia
organiza y facilita el polimorfismo y el
encapsulamiento permitiendo a los objetos ser
definidos y creados como tipos especializados
de objetos preexistentes. Estos pueden
compartir (y extender) su comportamiento sin
tener que volver a implementarlo. Esto suele
hacerse habitualmente agrupando los objetos
en clases y estas en árboles o enrejados que
reflejan un comportamiento común. Cuando
un objeto hereda de más de una clase se dice
que hay herencia múltiple
11. Objetos
Un objeto es una entidad cohesiva que tiene datos (atributos),
comportamiento (operaciones) y opcionalmente estado.
Características:
Datos (atributos)
Comportamiento
(operaciones)
Identidad
12. Clases
Una clase es una abstracción que define las propiedades
comunes a una colección de objetos.
Carro
Marca
Placa
Modelo…
arrancar
frenar
acelerar...
Nombre de la Clase
Propiedades
Atributos
13. La clase define:
Los atributos de los objetos: En cada
objeto de una clase dada, los
atributos pueden tener diferentes
valores, pero todos los objetos de una
clase tienen los mismos atributos
La interfaz que exponen los objetos:
Todos los objetos de una clase dada
exponen la misma interfaz mediante
la cual pueden crearse, consultarse
o modificarse.
El comportamiento de los objetos:
La implementación de un objeto
está definida por su clase.
14. Método: Sección de código autocontenida que pertenece a una
clase y que define la parte del comportamiento del sistema
correspondiente a dicha clase y a sus objetos
15. Observaciones:
La tarea asignada a un método debe estar bien definida.
El nombre de un método debe indicar
exactamente lo que hace (mediante un
verbo).
Los métodos deben tener una longitud
adecuada.
Métodos demasiado extensos hacen
difícil su comprensión y
depuración.
17. Tipo devuelto: Es el tipo del valor devuelto al objeto que invocó al
método. Puede ser la palabra reservada void, un tipo primitivo Java
o una clase
primitivo
nada
clase
bool verificarDatos(string id, string psw)
void dibujarCuadrado(int lado)
Auto autoConMultas ()
18. La lista de parámetros (argumentos) es una lista de las declaraciones
de parámetros que se pasan al método para su ejecución
La lista puede estar
vacía pero los
paréntesis son
obligados
Es obligatorio
indicar el tipo de
cada parámetro
Los argumentos de entrada
deben coincidir en número
y tipo y aparecer en el
mismo orden con los
declarados en el método