Download - POO Programación Orientada a Objetos
![Page 1: POO Programación Orientada a Objetos](https://reader035.vdocuments.net/reader035/viewer/2022062307/557bda95d8b42a8b3e8b4dca/html5/thumbnails/1.jpg)
PROGRAMACIÓN ORIENTADA OBJETOS
OP OObjective-C
![Page 2: POO Programación Orientada a Objetos](https://reader035.vdocuments.net/reader035/viewer/2022062307/557bda95d8b42a8b3e8b4dca/html5/thumbnails/2.jpg)
PUERTAHasta 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.
![Page 3: POO Programación Orientada a Objetos](https://reader035.vdocuments.net/reader035/viewer/2022062307/557bda95d8b42a8b3e8b4dca/html5/thumbnails/3.jpg)
PUERTAAllá 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)
![Page 4: POO Programación Orientada a Objetos](https://reader035.vdocuments.net/reader035/viewer/2022062307/557bda95d8b42a8b3e8b4dca/html5/thumbnails/4.jpg)
PParadigma 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.
![Page 5: POO Programación Orientada a Objetos](https://reader035.vdocuments.net/reader035/viewer/2022062307/557bda95d8b42a8b3e8b4dca/html5/thumbnails/5.jpg)
PSi encargamos una puerta a dos carpinteros distintos, cada uno nos dará un presupuesto y una solución diferente.
![Page 6: POO Programación Orientada a Objetos](https://reader035.vdocuments.net/reader035/viewer/2022062307/557bda95d8b42a8b3e8b4dca/html5/thumbnails/6.jpg)
PTodo es según el cristal con que se mire.
¿Significa que puedo hacer lo que quiera con el código?
![Page 7: POO Programación Orientada a Objetos](https://reader035.vdocuments.net/reader035/viewer/2022062307/557bda95d8b42a8b3e8b4dca/html5/thumbnails/7.jpg)
PObviamente 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.
![Page 8: POO Programación Orientada a Objetos](https://reader035.vdocuments.net/reader035/viewer/2022062307/557bda95d8b42a8b3e8b4dca/html5/thumbnails/8.jpg)
• 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.
• Herencia: Una clase puede heredar los campos y métodos de otra clase.
• Polimorfismo: Varios objetos de la misma clase pueden actuar de diferente manera.
DICCIONARIO de TÉRMINOS
}CaracterísticasDestacadas de
POO
![Page 9: POO Programación Orientada a Objetos](https://reader035.vdocuments.net/reader035/viewer/2022062307/557bda95d8b42a8b3e8b4dca/html5/thumbnails/9.jpg)
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
![Page 10: POO Programación Orientada a Objetos](https://reader035.vdocuments.net/reader035/viewer/2022062307/557bda95d8b42a8b3e8b4dca/html5/thumbnails/10.jpg)
Objetos:
Comportamiento:MÉTODO
yEstado:
ATRIBUTOS
![Page 11: POO Programación Orientada a Objetos](https://reader035.vdocuments.net/reader035/viewer/2022062307/557bda95d8b42a8b3e8b4dca/html5/thumbnails/11.jpg)
El Programador
• Cómo es ATRIBUTOS
• Que hará MÉTODOS
Tiene que dar vida a los objetos:
![Page 12: POO Programación Orientada a Objetos](https://reader035.vdocuments.net/reader035/viewer/2022062307/557bda95d8b42a8b3e8b4dca/html5/thumbnails/12.jpg)
Diferencia P.E. vs P.O.O.
• Se escriben funciones que procesan datos
Programación Estructurada
![Page 13: POO Programación Orientada a Objetos](https://reader035.vdocuments.net/reader035/viewer/2022062307/557bda95d8b42a8b3e8b4dca/html5/thumbnails/13.jpg)
Diferencia P.E. vs P.O.O.
• Se crean objetos para luego enviarles mensajes solicitándoles que realicen sus métodos por sí mismos.
Programación Orientada a Objetos
![Page 14: POO Programación Orientada a Objetos](https://reader035.vdocuments.net/reader035/viewer/2022062307/557bda95d8b42a8b3e8b4dca/html5/thumbnails/14.jpg)
OBJETOInstancia de una clase
CLASEPropiedad y comportamiento
de un objeto concretoATRIBUTO
Propiedad del objeto
MÉTODOLo que un objeto
puede hacer (algoritmo)
MENSAJEComunicación dirigida a un
objeto ordenándole que ejecute uno de sus métodos
![Page 15: POO Programación Orientada a Objetos](https://reader035.vdocuments.net/reader035/viewer/2022062307/557bda95d8b42a8b3e8b4dca/html5/thumbnails/15.jpg)
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
![Page 16: POO Programación Orientada a Objetos](https://reader035.vdocuments.net/reader035/viewer/2022062307/557bda95d8b42a8b3e8b4dca/html5/thumbnails/16.jpg)
EJEMPLOSi 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.}
![Page 17: POO Programación Orientada a Objetos](https://reader035.vdocuments.net/reader035/viewer/2022062307/557bda95d8b42a8b3e8b4dca/html5/thumbnails/17.jpg)
EJEMPLOInstanciación en Objective-C : (ejemplo orientativo)
Despertador * modeloElegido = [ [ Despertador alloc ] init ] ; [ modeloElegido sonar ] ; if ( [ modeloElegido.hora = 7.00 a.m. ] ) { sonar = YES; } else { sonar = NO; } }