El documento introduce los conceptos básicos de la programación orientada a objetos, utilizando ejemplos como una puerta y un despertador para ilustrar la diferencia entre los paradigmas de programación estructurada y orientada a objetos. Explica que en POO los programas se desarrollan creando objetos con atributos y métodos, en lugar de solo procesar datos. Además, proporciona definiciones clave como clase, objeto, instancia, atributo, método y mensaje.
2. PUERTA
Hasta ahora la programación
era de flujo: PROGRAMACIÓN
ESTRUCTURADA
Ahora programamos tal y como
expresaríamos las cosas en la
vida real.
La POO nos permite pensar en
la programación de manera
similar a como lo hacemos en
la vida diaria.
3. PUERTA
Allá donde estéis ¿tenéis
una puerta cerca?
Que funciones hace: abrir y
cerrar (MÉTODOS)
Que tipo de puerta es:
blindada, marrón,
acristalada,...
(PROPIEDADES o
ATRIBUTOS)
4. P
Paradigma de la programación
Cuando hablamos de PARADIGMA:
Es la manera de pensar SUBJETIVA del programador.
El mismo programa puede tener tantas versiones
como programadores lo hagan, diferente según el
programador.
5. P
Si encargamos una
puerta a dos
carpinteros distintos,
cada uno nos dará un
presupuesto y una
solución diferente.
6. P
Todo es según el cristal
con que se mire.
¿Significa que puedo
hacer lo que quiera con
el código?
7. P
Obviamente NO, aunque la
curva de aprendizaje
inicialmente es complicada,
conviene prestar atención a
las formas y usos para lograr
un código fluido y situarlo
dentro de la convención.
8. DICCIONARIO de TÉRMINOS
• Clase: Propiedad y comportamiento de un tipo de objeto concreto.
• Objeto: Entidad provista de un conjunto de atributos (datos) y de comportamiento o funcionalidad (métodos).
Es una instancia a una clase.
• Instancia: Lectura de los datos y funciones de una clase y la creación de un objeto a partir de éstos.
• Atributo: Datos y propiedades del objeto.
• Método: Algoritmo asociado a un objeto. Define aquello que el objeto puede hacer.
• Evento: Acción que provoca una interacción del usuario con la máquina.
• Mensaje: La comunicación dirigida a un objeto ordenándole que ejecute uno de sus métodos.
}
• Abstracción: Razonamiento para crear las clases capaces de dar la solución al planteamiento.
Características
• Herencia: Una clase puede heredar los campos y métodos de otra clase. Destacadas de
POO
• Polimorfismo: Varios objetos de la misma clase pueden actuar de diferente manera.
9. Objective-C
• Lenguaje de programación basado en C
• Trabaja orientado a objetos.
• Estructurado en clases, objetos, variables de
instancias, métodos, etc.
• 3º en el ranking TIOBE
• Controlado por Apple y NextStep
• Antiguo: +30 años
11. El Programador
Tiene que dar vida a los objetos:
• Cómo es
ATRIBUTOS
• Que hará
MÉTODOS
12. Diferencia P.E. vs P.O.O.
Programación Estructurada
• Se escriben funciones
que procesan datos
13. Diferencia P.E. vs P.O.O.
Programación Orientada a
Objetos
• Se crean objetos para
luego enviarles
mensajes solicitándoles
que realicen sus
métodos por sí
mismos.
14. CLASE
Propiedad y comportamiento
de un objeto concreto
ATRIBUTO
Propiedad del objeto
MÉTODO
Lo que un objeto
OBJETO
Instancia de una clase
puede hacer
(algoritmo)
MENSAJE
Comunicación dirigida a un
objeto ordenándole que
ejecute uno de sus métodos
15. EJEMPLO
¿Que necesito para madrugar?
Compro lo que voy a necesitar: un despertador.
En la tienda:
- Quiero una CLASE de despertador ¿que INSTANCIAS de OBJETO de
la CLASE despertador tiene?
- Tiene esta INSTANCIA de la CLASE despertador con estos
ATRIBUTOS: eléctrico, 2 tipos de sonido, hora … esta otra INSTANCIA
con los ATRIBUTOS: pilas, 5 tipos de alarma, hora … o esta otra
INSTANCIA con los ATRIBUTOS: solar, radio y da la hora.
- Me quedo con esta INSTANCIA de OBJETO de la CLASE despertador
16. EJEMPLO
Si quiero madrugar, lo que debo de hacer es preparar el
despertador para levantarme a una hora en concreto
(FUNCIÓN o MÉTODO) programar el despertador:
CLASE INSTANCIADEOBJETO (ATRIBUTOS) {
! FUNCIÓN o MÉTODO
}
Despertador modeloElegido (solar, radio, hora) {
! ! SONAR A LAS 7 A.M.
}