POO Programación Orientada a Objetos

17
PROGRAMACIÓN ORIENTADA OBJETOS O P O Objective-C

description

Programación Orientada a Objetos

Transcript of POO Programación Orientada a Objetos

Page 1: POO Programación Orientada a Objetos

PROGRAMACIÓN ORIENTADA OBJETOS

OP OObjective-C

Page 2: POO Programación Orientada a Objetos

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

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

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

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

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

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

• 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

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

Objetos:

Comportamiento:MÉTODO

yEstado:

ATRIBUTOS

Page 11: POO Programación Orientada a Objetos

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

Diferencia P.E. vs P.O.O.

• Se escriben funciones que procesan datos

Programación Estructurada

Page 13: POO Programación Orientada a Objetos

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

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

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

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

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; } }