Está en la página 1de 26

Programación Orientada a Objetos

Valentino Mantovani

Twitter: @vale_manto
● LinkedIn::linkedin.com/in/valentino-mantovani/

UBA -FCE Año: 2019


Los paradigmas de programación

Imperativos Declarativos

Procedimental POO Otros Funcional Lógico Otros

2 Programación Orientada a Objetos UBA – FCE


Los paradigmas de programación

Imperativos Declarativos

Procedimental POO Otros Funcional Lógico Otros

3 Programación Orientada a Objetos UBA – FCE


Los paradigmas de programación

Imperativos Declarativos

Procedimental OOP Otros Funcional Lógico Otros

4 Programación Orientada a Objetos UBA – FCE


Los paradigmas de programación

Imperativos Declarativos

Procedimental POO Otros Funcional Lógico Otros

5 Programación Orientada a Objetos UBA – FCE


Paradigma Orientado a Objetos

¿Porqué es el paradigma más utilizado?

Permite expresar las


cosas como Se acopla muy bien
La reutilización
en la vida real al modelado de datos
del código

6 Programación Orientada a Objetos UBA – FCE


Conceptos importantes de la POO


Clase: descripción de los objetos.

Objeto: instancia de la clase.

Atributos: características del objeto.

Métodos: las acciones que puede realizar

7 Programación Orientada a Objetos UBA – FCE


Conceptos importantes de la POO


Clase: descripción de los objetos.

Objeto: instancia de la clase.

Atributos: características del objeto.

Métodos: las acciones que puede realizar

Vamos a ver estos conceptos con un ejemplo..

8 Programación Orientada a Objetos UBA – FCE


La clase Automóvil

Clase: Automóvil
Métodos:

Atributos:

Imaginemos un objeto
para esta clase..

9 Programación Orientada a Objetos UBA – FCE


La clase Automóvil

Clase: Automóvil
Métodos:

PonerseEnMarcha()

GirarDerecha()
Atributos: ●
GirarIzquierda()

Color (string) ●
Avanzar()

Marca (object) ●
Frenar()

Modelo (integer)

Velocidad (float)
Y una la instancia?

Cantidad de Puertas (integer)

Encendido (boolean)

10 Programación Orientada a Objetos UBA – FCE


La clase Automóvil

Atributos


Son las características
individuales que diferencian
un objeto de otro y
determinan su apariencia,
estado u otras cualidades.

Los atributos se guardan en
variables cuando un objeto
es instanciado. Cada
instancia puede tener un
valor diferente.

Las variables pueden ser
encapsuladas

11 Programación Orientada a Objetos UBA – FCE


La clase Automóvil

Métodos


Subrutinas definidas dentro
de la clase.

Son las ejecutoras de las
acciones y las que modifican
el comportamiento y estado
de la clase.

Se utilizan para
obtener/modificar los valores
de las variables desde el
exterior (getters/setters)

Los métodos constructores se
llaman al instanciar una
nueva clase.

12 Programación Orientada a Objetos UBA – FCE


La clase Automóvil

Métodos

Subrutinas definidas dentro
de la clase.

Son las ejecutoras de las
acciones y las que modifican
el comportamiento y estado
de la clase.

Se utilizan para
obtener/modificar los valores
de las variables desde el
exterior (getters/setters)

Los métodos constructores se
llaman al instanciar una
nueva clase.

13 Programación Orientada a Objetos UBA – FCE


La clase Automóvil

Instancias

Se llama instancia a todo objeto que derive de algún otro.

Todos los objetos son instancias de algún otro, menos la clase Object que
es la madre de todas.

La instancia tienen una tiempo de vida se crean con la palabra reservada
new (reservando espacio de memoria) y se eliminan con la palabra
reservada delete (liberando espacio de memoria)

NOTA: Los objetos se comunican a través de mensajes, que son simples


llamadas a los métodos de la clase.

14 Programación Orientada a Objetos UBA – FCE


La clase Automóvil

Instancias

$focus = new Automovil(); $ferrari = new Automovil();

$focus→setMarca(“Ford Focus”) $ferrari→setMarca(“Ferrari 548”)


→setModelo(“2011”) →setModelo(“2019”)
→setColor(“Gris”); →setColor(“Rojo”);

15 Programación Orientada a Objetos UBA – FCE


Características de la POO


ABSTRACCIÓN

ENCAPSULAMIENTO

POLIMORFISMO

HERENCIA

16 Programación Orientada a Objetos UBA – FCE


Características de la POO: Abastracción

Son las características
especificas de un objeto,

Aquellas que lo distinguen de los Automóvil Barco
demás tipos de objetos y que
logran definir límites
conceptuales respecto a quien
está haciendo dicha abstracción
del objeto.

La abstracción es clave en el
proceso de análisis y diseño
orientado a objetos, ya que ¿Qué características podemos
mediante ella podemos llegar a abstraer de los automóviles? ¿Qué
armar un conjunto de clases que características semejantes tienen
permitan modelar la realidad o el todos los automóviles?
problema que se quiere atacar.

17 Programación Orientada a Objetos UBA – FCE


Características de la POO: Abastracción

Son las características
especificas de un objeto,

Aquellas que lo distinguen de los Automóvil Barco
demás tipos de objetos y que
logran definir límites
conceptuales respecto a quien
está haciendo dicha abstracción
del objeto.

La abstracción es clave en el
proceso de análisis y diseño
orientado a objetos, ya que Respuesta:
mediante ella podemos llegar a ●
Características: Marca, Modelo,
armar un conjunto de clases que Número de chasis, Peso llantas o
permitan modelar la realidad o el cauchos, Puertas, Ventanas…
problema que se quiere atacar. ●
Comportamiento: Acelerar, Frenar,
Retroceder...

18 Programación Orientada a Objetos UBA – FCE


Características de la POO: Encapsulamiento


Es el resultado de ocultar los
detalles de implementación
de un objeto.

Oculta datos y brinda la
posibilidad de visualizarlos a
través de sus métodos.

Al encapsular un objeto
logramos tener un mismo
nivel de abstracción.

En PHP tenemos tres palabras
reservadas para realizar el
encapsulamiento: private,
public y protected.

19 Programación Orientada a Objetos UBA – FCE


Características de la POO: Polimorfismo


Se aplica a métodos que adoptan Figura
varias formas de implementación
según el tipo de objeto, pero
cumplen siempre el mismo
objetivo.
Triángulo Rectángulo Circulo

Un método es polimorfico si puede
ser implementado por objetos de
distintas clases y se consigue el public function area{
mismo significado semántico. return base * altura;
}

Una de las ventajas del
polimorfismo es que se puede public function area{
hacer una solicitud sin conocer el return (base * altura)/2;
método que será llamado, es decir, }
existe un enlace tardío entre el
mensaje y el método. public function area{
return PI * pow(radio, 2);
}

20 Programación Orientada a Objetos UBA – FCE


Características de la POO: Polimorfismo

Figura

Figura peque = new Triangulo();

Figura super = new Circulo();


Triángulo Rectángulo Circulo
Figura magico = new Cuadrado()

public function area{ $area1 = peque→area();


return base * altura;
} $area2 = super→area();

public function area{ $area3 = magico→area();


return (base * altura)/2;
} echo $area1;
echo $area2;
echo $area3;
public function area{
return PI * pow(radio, 2);
}

21 Programación Orientada a Objetos UBA – FCE


Características de la POO: Herencia


Es un mecanismo que permite
la definición de una clase a Vehículo
partir de una ya existente.

Es la característica que le da
a la POO el beneficio de
reutilización. Automóvil Motocicleta


Una subclase hereda
propiedades de su clase
padre.

Puede heredar métodos y/o Nota: Vehículo podría ser una clase
atributos. En PHP debemos abstracta. Esto quiere decir que no la
colocar la palabra clave podemos instanciar, solo puede ser
extends {clasePadre} para heredada/extendida.
indicar la herencia. public abstract class Vehiculo{

22 Programación Orientada a Objetos UBA – FCE


Características de la POO: Herencia

Definamos métodos y atributos en la siguiente herencia:

Vehículo

Automóvil Motocicleta

23 Programación Orientada a Objetos UBA – FCE


Características de la POO: Herencia

Vehículo
Atributos: Métodos

Color (string) ●
PonerseEnMarcha()

Marca (object) ●
GirarDerecha()

Modelo (integer) ●
GirarIzquierda()

Velocidad (float) ●
Avanzar()

Encendido (boolean) ●
Frenar()

Automóvil Motocicleta
Atributos: Métodos:

Cantidad de Puertas (integer) ●
HacerWilly()
Métodos: ●
Avanzar()

Avanzar()

24 Programación Orientada a Objetos UBA – FCE


Citas celebres

"Primero aprende informática y toda la teoría. Después


desarrolla un estilo de programación. Entonces, olvídalo todo
y hackea"
-- George Carrette

"No hay lenguaje de programación, no importa su estructura,


que impida que los programadores hagan malos programas"
-- Larry Flon

25 Programación Orientada a Objetos UBA – FCE


FIN

Valentino Mantovani

Twitter: @vale_manto
● Linkedin::linkedin.com/in/valentino-mantovani/

UBA -FCE Año: 2019

También podría gustarte