Pilares de la POO
La POO (Programación Orientada a Objetos) se basa en cuatro conceptos: Abstracción Encapsulación Herencia Polimorfismo Pilares de la P.O.O.
Abstracció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
Encapsulamiento Facilita el manejo de la complejidad sólo se conoce el comportamiento pero no los detalles internos nos interesa conocer qué hace la Clase pero no saber cómo lo hace Acelera() 125 km/h velocidad 300 km/h Frena() 40 km/h Encapsulamiento
Herencia Es “un tipo de” relación Entre Clases Relación “es un” Entre Clases Va de la generalización a la especialización Clase base Clase derivada Hereda la implementación Transporte Acelera Frena Automóvil
Jerarquías de Clase Transporte Marítimo Aire Nieve Tierra DentroAtmosfera FueraAtmosfera 1-Persona N-Personas
Polimorfismo 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.
Polimorfismo 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 Auto Acelera Frena Cohete Acelera Frena Transporte Acelera Frena Caballo Acelera Frena
Resumen 1) La abstracción se usa al modelar objetos de la vida real, o no, es un mecanismo en el cual al momento de modelar el objeto en si, tomas solo las características y comportamientos mas indispensables, por Ej.: todos sabemos usar un televisor y no sabemos como funciona por dentro, para usarlo te abstraes del comportamiento que no creas necesario. 2) El enpasulamiento se define como la acción de poner dentro de un objeto sus atributos y métodos, mostrando luego una interfaz común para el uso posterior del mismo, con esto, ganas que los objetos puedan comunicarse entre ellos y que nadie se meta con la implementación del otro. tu muestras solo los métodos que creas necesarios para poder comunicarse con el objeto y el contrato dice que los usuarios deben usar estos y solo estos métodos.
Resumen 3) Herencia, al igual que la vida real es el mecanismo con el cual una clase hereda( obtiene ) de su ancestro atributos y métodos públicos y protegidos, y lo que se gana con esto es la reutilización de código, aunque su poder se produce al utilizar el polimorfismo. 4) Polimorfismo, es la capacidad que tienen las referencias de "referenciar" a objetos de distintos tipos, pero herederos de un mismo padre, y poder realizar en tiempo de ejecución ( ligamento tardío ), la llamada al método correspondiente.