27
Programación Orientada a Objetos

Conceptos Fundamentales ¿Qué es OOP? Una serie de normas para mejorar la programación Se basa en la idea natural de un mundo lleno de objetos El Objeto

Embed Size (px)

Citation preview

Page 1: Conceptos Fundamentales ¿Qué es OOP? Una serie de normas para mejorar la programación Se basa en la idea natural de un mundo lleno de objetos El Objeto

Programación Orientada a Objetos

Page 2: Conceptos Fundamentales ¿Qué es OOP? Una serie de normas para mejorar la programación Se basa en la idea natural de un mundo lleno de objetos El Objeto

Conceptos Fundamentales¿Qué es OOP?

• Una serie de normas para mejorar la programación

• Se basa en la idea natural de un mundo lleno de objetos

• El Objeto es su elemento fundamental

Page 3: Conceptos Fundamentales ¿Qué es OOP? Una serie de normas para mejorar la programación Se basa en la idea natural de un mundo lleno de objetos El Objeto

Conceptos Fundamentales¿Qué es lo que ves?

Page 4: Conceptos Fundamentales ¿Qué es OOP? Una serie de normas para mejorar la programación Se basa en la idea natural de un mundo lleno de objetos El Objeto

Conceptos Fundamentales¿Qué es lo que ves?

Page 5: Conceptos Fundamentales ¿Qué es OOP? Una serie de normas para mejorar la programación Se basa en la idea natural de un mundo lleno de objetos El Objeto

Conceptos Fundamentales¿Qué es lo que ves?

Page 6: Conceptos Fundamentales ¿Qué es OOP? Una serie de normas para mejorar la programación Se basa en la idea natural de un mundo lleno de objetos El Objeto

Conceptos Fundamentales¿Qué tienen en común?

Page 7: Conceptos Fundamentales ¿Qué es OOP? Una serie de normas para mejorar la programación Se basa en la idea natural de un mundo lleno de objetos El Objeto

Conceptos Fundamentales¿Qué tienen en común?

Page 8: Conceptos Fundamentales ¿Qué es OOP? Una serie de normas para mejorar la programación Se basa en la idea natural de un mundo lleno de objetos El Objeto

Conceptos Fundamentales¿Qué es una clase?

• Clase Clasificación

• Clasificación en base a comportamiento y atributos comunes

• Crea un vocabulario La forma en que nos

comunicamos La forma en que pensamos

Page 9: Conceptos Fundamentales ¿Qué es OOP? Una serie de normas para mejorar la programación Se basa en la idea natural de un mundo lleno de objetos El Objeto

Conceptos Fundamentales¿Qué es una clase?

• Construcción Estática

• Describe: Comportamiento común Atributos [estado]

• Estructura de datos

• Incluye: Datos Funciones o métodos

Page 10: Conceptos Fundamentales ¿Qué es OOP? Una serie de normas para mejorar la programación Se basa en la idea natural de un mundo lleno de objetos El Objeto

Conceptos FundamentalesConstructores y Destructores

• Dos métodos de las clases

• Existen por defecto

• Constructor, inicializa valores

• Destructor, libera recursos al finalizar la vida de una instancia de una clase creada en memoria

• Existen constructores y destructores por defecto

Page 11: Conceptos Fundamentales ¿Qué es OOP? Una serie de normas para mejorar la programación Se basa en la idea natural de un mundo lleno de objetos El Objeto

Conceptos Fundamentales¿Qué es un objeto?

Page 12: Conceptos Fundamentales ¿Qué es OOP? Una serie de normas para mejorar la programación Se basa en la idea natural de un mundo lleno de objetos El Objeto

Conceptos Fundamentales¿Qué es un objeto?

• Instancia de una clase

• Un objeto posee: Identidad: Es diferenciable entre

uno y otro Comportamiento: Realiza tareas

específicas Estado: Almacena información

FijaVariable

Page 13: Conceptos Fundamentales ¿Qué es OOP? Una serie de normas para mejorar la programación Se basa en la idea natural de un mundo lleno de objetos El Objeto

Pilares de la POO

Herencia Polimorfismo Encapsulamiento

Abstracción

Page 14: Conceptos Fundamentales ¿Qué es OOP? Una serie de normas para mejorar la programación Se basa en la idea natural de un mundo lleno de objetos El Objeto

Pilares de la POOAbstracción

• Ignorancia selectiva

• Decide que es importante y que no lo es

• Se enfoca [depende] en lo que es importante

• Ignora [no depende] de lo que no es importante

• Utiliza la encapsulación para reforzar la abstracción

Page 15: Conceptos Fundamentales ¿Qué es OOP? Una serie de normas para mejorar la programación Se basa en la idea natural de un mundo lleno de objetos El Objeto

Pilares de la POOEncapsulamiento

Acelera()

velocidad

Frena()

125 km/h

40 km/h

300 km/h

Page 16: Conceptos Fundamentales ¿Qué es OOP? Una serie de normas para mejorar la programación Se basa en la idea natural de un mundo lleno de objetos El Objeto

Pilares de la POO¿Porqué utilizar

encapsulamiento?

Dos grandes razones:

• Control

• Cambio

Page 17: Conceptos Fundamentales ¿Qué es OOP? Una serie de normas para mejorar la programación Se basa en la idea natural de un mundo lleno de objetos El Objeto

Pilares de la POOEncapsulamiento

Acelera()

velocidad

Frena()

Controlador del Motor

• Los métodos son públicos: son accesibles desde fuera

• Los datos son privados: accesibles desde dentro

Page 18: Conceptos Fundamentales ¿Qué es OOP? Una serie de normas para mejorar la programación Se basa en la idea natural de un mundo lleno de objetos El Objeto

Pilares de la POODatos del Objeto

• Color: Ázul• Color 2: Gris• Instrumental Digital• Ventanas eléctricas• 4 asientos

• Color: Verde• Color 2: Negro• Instrumental digital• 2 asientos

Page 19: Conceptos Fundamentales ¿Qué es OOP? Una serie de normas para mejorar la programación Se basa en la idea natural de un mundo lleno de objetos El Objeto

Pilares de la POODatos del Objeto

Describen información para todos los objetos

• Número de llantas: 4• Capacidad del tanque: 40

litros• Tipo de Transmisión:

Automática

Page 20: Conceptos Fundamentales ¿Qué es OOP? Una serie de normas para mejorar la programación Se basa en la idea natural de un mundo lleno de objetos El Objeto

Pilares de la POOMétodos Estáticos

• Solo pueden acceder a datos estáticos

• Encapsula los datos estáticos

• Son invocados en la clase, no en el objeto. No es necesaria la creación de una instancia para invocarlos

Page 21: Conceptos Fundamentales ¿Qué es OOP? Una serie de normas para mejorar la programación Se basa en la idea natural de un mundo lleno de objetos El Objeto

Pilares de la POOHerencia

• Es “un tipo de” relación Relación “es un”

• Entre Clases

• Va de la generalización a la especialización

• Clase base

• Clase derivada

• Hereda la implementación

Page 22: Conceptos Fundamentales ¿Qué es OOP? Una serie de normas para mejorar la programación Se basa en la idea natural de un mundo lleno de objetos El Objeto

Pilares de la POOHerencia - Jerarquía de Clases

Transporte

Marítimo Aire Nieve Tierra

DentroAtmosfera FueraAtmosfera 1-Persona N-Personas

POO

Page 23: Conceptos Fundamentales ¿Qué es OOP? Una serie de normas para mejorar la programación Se basa en la idea natural de un mundo lleno de objetos El Objeto

Pilares de la POOHerencia Múltiple

• Singular: La clase hija deriva de una única clase padre

• Múltiple: La clase hija deriva de varias clases padre

• No es soportada por todos los lenguajes

• Puede ser confusa

Page 24: Conceptos Fundamentales ¿Qué es OOP? Una serie de normas para mejorar la programación Se basa en la idea natural de un mundo lleno de objetos El Objeto

Pilares de la POOPolimorfismo

• Literalmente significa tomar varias formas

• Tareas similares son realizadas por métodos con mismo nombre Suma:

Enteros Decimales Fracciones

• Simplifican la tarea del desarrollador, al no tener que recordar distintos nombres para comportamientos iguales.

Page 25: Conceptos Fundamentales ¿Qué es OOP? Una serie de normas para mejorar la programación Se basa en la idea natural de un mundo lleno de objetos El Objeto

Pilares de la POOPolimorfismo

• La definición del método reside en la clase base

• La implementación del método reside en la clase derivada

• La invocación es resuelta al momento de ejecución Early binding Late binding

Page 26: Conceptos Fundamentales ¿Qué es OOP? Una serie de normas para mejorar la programación Se basa en la idea natural de un mundo lleno de objetos El Objeto

Resumen• ¿Qué es la Programación

Orientada a Objetos?

• Clases y Objetos

• Métodos y Atributos

• Encapsulamiento

• Herencia

• Polimorfismo

Page 27: Conceptos Fundamentales ¿Qué es OOP? Una serie de normas para mejorar la programación Se basa en la idea natural de un mundo lleno de objetos El Objeto