Paradigma
Modelo patron o ejemplo que debe seguirse en determinada situacion
POO
La Poo es un paradigma que se basa en la idea de un mundo de objetos, todo se puede representar como objeto
Concepto de agrupar codigo y datos juntos dentro de una misma unidad llamada clase
Caracteristicas Poo
Abstraccion, encapsulamiento, polimorfismo, herencia, UML (Lenguaje universal del modelado)
Clases
Plantilla o molde para construir objetos
* Representa entidades del mundo real
* Poseen atributos y metodos
* No pueden ser utilizados directamente (mediante instancias de objetos)
Metodos
Acciones en una clase y definen su comportamiento
* Operaciones con verbos en infinitivos
* Valores de entrada y salida
* Procedimientos (no retorna valor) y funciones (retornan un valor)
Objetos
Instancia de una clase
* Posee un estado de acuerdo a sus atributos
* Posee comportamientos de acuerdo a sus metodos
Metodos constructores
Funciones especiales que contienen las clases para la creacion de objetos
* Se llaman igual que las clases
* No retorna ningun valor (ni siquiera void)
*Dos tipos= Vacios (sin datos guardados), con parametros (con this, referencia al objeto actual)
Gettrs y setters
Metodos para establecer u obtener valores de atributos del objeto
Herencia
Clases que comparten gran parte de sus caracteristicas
*Permite reutilizar clases
*La subclase o clase hija, puede poseer atributos y metodos unicos
Polimorfismo
Muchas formas
* A partir de un objeto padre puede tener clases hijas que comparten atributos y metodos
* Permite asignaciones de hijo a padre pero no de padre a hijo
* Permite manejar mismo tipo padre en todos los hijos
Sobrecarga
Mismo nombre -> diferentes parametros en tipo o cantidad
Sobre escritura
Clase madre con un metodo, cuando el hijo hereda, puede reemplazar el metodo con otra logica, mismo metodo, diferente implementacion en el hijo
*Mismo parametros y tipo de retorno
*Cuando se usa abstract en el padre es necesario la implementacion del metodo en el hijo
Encapsulamiento
Reunir todos los elementos que pueden considerarse perteneciente a una misma entidad al mismo nivel de abstraccion, no es OCULTACION
Ocultacion
Cada objeto aislado y unicamente expone una interfaz a otros objetos, proyege las propiedades de un objeto contra su modificacion a quien no tenga acceso
Encapsulamiento Tipos
Publico -> puede ser usado desde cualquier lugar
Private -> puede ser usado en la clase donde se declaro unicamente
Protected -> puede ser usado en la misma clase y clases hijas
Clases abstractas
No pueden ser instanciasdas
*Declara la existenia de metodos pero no su implementacion, convirtiendola en clase padre
* Al menos uno de sus metodos debe ser abstracto (Puede tener metodos no abstractos)
* Niveles public o protected, nunca private
*Solo se puede heredar de una abstracta a la vez
Generalmente indican el “es/ser” de un objeto mas que el como lo hace
Cuando se usan las clases abstractas
cuando se quiere una abstraccion que englobe objetos de distintos tipos y se requiere usar el polimorfismo
EJ: figuras, area de cada hijo se calcula de forma diferente
*Si la subclase no redefine el metodo abstracto debera declararse como abstracta
Interfaces
Herencia multiple
* Coleccion de metodos abstractos con propiedades constantes
* Solamente puede extender e implementar otras interfaces
* Da a conocer lo que se debe hacer pero no el como
* Solo tiene metodos publicos
* Solo puede tener public static final (constantes)
* La palabra abstract en la definicion no es obligatoria
* Generalmente indican el “Puede hacer” de un objeto
Colecciones
Similares a los arreglos (matrices o vectores), pero dinámicos, tamaño y cantidad varían con el tiempo
En Java mediante la interfaz Collection
Tipos de colecciones
List - Array List
Set - hash set…
Queu
Map - hash map ….
Listas
Conjunto de elementos relacionados y tienen un orden
Son dinámicas
Array List (fifo), linkedlist (fifo), stack (lifo)
Array list
Clase representada como matriz dinámica para almacenar
* Implementar la interfaz list
* Permite duplicados
* Se ordena por orden de inserción
* Acceso aleatorio - índice
* Manipulación lenta al hacer cambios
Linkedin list
Diferencia Array List y Linked list
En Array List solo se puede insertar al final, con linkedlist se puede insertar al comienzo y al final
Linked list no tiene índice, solo recorrerlo por foreach
Pueden tener métodos propios ej gerFirst en Linked