Este documento resume los principales conceptos de orientación a objetos en Java como encapsulamiento, herencia, polimorfismo, sobrecarga y sobrescritura de métodos, casteo de variables, implementación de interfaces, tipos de retorno, constructores, variables y métodos estáticos, acoplamiento y cohesión, y tipos enumerados. Explica cada uno de estos conceptos con detalles sobre su definición y aplicación.
2. Temática …
1.Encapsulamiento
2.Herencia “Es-un”(Is-A) y “Tiene un” (Has-A)
3.Polimorfismo
4.Sobrescritura / Sobrecarga
1.Métodos sobrescritos
2.Métodos sobrecargados
3.Polimorfismo sobrescritos y sobrecargados
5.Casteo a variables de referencia
3. ...Temática
6.Implementación de interfaces
7.Tipos de retorno
8.Constructores
9.Variables y métodos estáticos
10.Acoplamiento y cohesión
11.Tipos enumerados (Enum)
4. Encapsulamiento
●Principio de la Orientación a Objetos
●Se utiliza con el fín de tener flexibilidad, buen mantenimiento y extensibilidad
○Mantener las variables de instancia protegidas (puede ser con un modificador de acceso. Ej.: private).
○Hacer métodos de acceso públicos para forzar al acceso a las variables por medio de dichos métodos en lugar de acceder directamente.
○Utilizar las convenciones de código para los nombres de los métodos, Ej.: set, get , is.
7. 2.Herencia “Es un” (Is-A) “Tiene un”(Has-A)
●Principio de la Orientación a Objetos
●Se utiliza con el fín de crear nuevas clases teniendo como base una clase padre, con el fin de reutilizar sus funcionalidades, agregar nuevos comportamientos simplemente ajustarlos mediante la sobreescritura y el polimorfismo.
8.
9.
10.
11.
12.
13. 3.Polimorfismo
●Principio de Orientado a Objeto
●Serefierealapropiedadporloqueesposibleenviarmensajessintácticamenteigualesaobjetosdiferentes.
●TodoobjetoJavaquecumplaconlarelaciónIS-Apuedeserconsideradopolimórfico;PorlotantotodoslosobjetosJavason…
15. 4.Sobrescritura / Sobrecarga
●El objetivo en este punto de diferenciar cuando un objeto se está sobrescribiendo y cuándo se está sobrecargando.
●La sobrescritura se presenta en la herencia, de esta manera es posible sobrescribir los métodos de la superclase que no sean final.
16.
17. Sobrescritura
●Elmétodoquesobrescribenopuedetenerunmodificadordeaccesomásrestrictivoqueelmétodoqueestásobrescribiendo, perosímenosrestrictivo.
●Lalistadeargumentosdebeserexactamentelamismaqueladelmétodosobrescrito
●Eltipodevueltodebeserelmismo,ounsubtipo,deltipoderetornodeclaradoenelmétodooriginaldelasuperclase.
●Elmétodoquesobrescribenopuedelanzarexcepcionesmásgeneralesquesedeclarenenelmétodosobrescrito.Perosipuededeclararexcepcionesmásespecíficas.
●No podemos sobrescribir un método marcado como final o private.
●No podemos sobrescribir un método marcado como static
●Si un método no puede ser heredado, no podemos sobrescribir
●Para llamar a un método de la clase padre desde la subclase los hacemos con la palabra super() permitiéndonos llamar así, la funcionalidad del método antes de sobreescribirlo.
18. Sobrecarga
●Los métodos sobrecargados DEBEN cambiar la lista de argumentos
●Los métodos sobrecargados PUEDEN cambiar el tipo de retorno
●Los métodos sobrecargados PUEDEN cambiar el modificador de acceso
●Los métodos sobrecargados PUEDEN declarar excepciones checkednuevas o más genéricas
●No se puede cambiar solamente el tipo de retorno.
●Un método puede ser sobrecargado en la misma clase o en una subclase. En otras palabras, si la clase A define el método hacerAlgo(int i), la subclase B podría definir un método hacerAlgo(String s)sin sobrescribir la versión de la superclase. Los dos métodos, con el mismo nombre pero en diferentes clases, siguen considerándose sobrecargados si la subclase hereda una versión del método y declara otra versión sobrecargada en su definición de clase.
19.
20. 5.Casteo a variables de referencia
SabemosqueenJavaesposibletenerunareferenciaaunaclaseytenerunainstanciaacualquieradesussubclases
Animal animal = new Dog();
Perohacerestotienesuslimitaciones,enelcasocuandoserequiereutilizarlosmétodosimplementadosenlaclaseDog.
21.
22.
23. 6.Implementación de interfaces
Al implementar una interfaz estas también cumple con la relación IS-A
●Cuandoseimplementaunainterfazesnecesarioimplementarsusmétodos,salvosilaclaseesabstracta.
●Sedebetenerencuentaquetodoslosmétodosdeunainterfazsonpúblicosyabstractosasícomosusvariablessonpúblicasyfinales.
●Enunaclasesepuedenimplementarninterfaces.
●UnainterfazpuedeheredarNinterfaces,peronuncaimplementarotrasinterfaces.Noeslamismaherenciacomosetrabajaconlasclases.
●Nosepuedecrearunainstanciadirectadeunainterfaz
MiInterfaz variebla = new MiInterfaz(); //Error
24. 7.Tipos de retorno
En esta parte nos centraremos a los tipos de retorno que cumplan con la relación IS-A
●Esposiblesobrescribirunmétodoycambiareltipoderetornosiempreycuandoseencuentrendentrodelmismoárboldeherencia
●Enunmétodoconuntipoderetornoprimitivo,podemosdevolvercualquiervalorovariablequepuedaserimplícitamenteconvertidaaltipoderetornodeclarado.
26. ¿Cuándo se crea un constructor por defecto?
Cuándo dentro de la clase no se ha creado ningún constructor. Ni siquiera un constructor sin argumentos.
●El constructor por defecto tiene el mismo modificador de acceso que la clase.
●El constructor por defecto no tiene argumentos.
●El constructor por defecto incluye una llamada sin argumentos al super constructor (super()).
27. 9.Variables y métodos estáticos.
Tambiénconocidoscomovariablesymétodosdeclase.Deloscualessepuedeninvocarsintenerunainstancia.
Deigualmaneralasvariablesestáticasmantienensuvalorenmemoriaindependientementedelainstanciaquesecree.
Unmétodoestáticosólopuedeaccederamétodosyvariablesestáticasqueestándefinidasfueradelaclase.
Recordemosquelosmétodosestáticosnosepuedensobrescribir,perosípuedenserredefinidosenunasubclase.
28. 10.Acoplamiento y cohesión
Acoplamiento
●Cantidaddeconocimientoqueunaclasetienesobrelaotra.LoúnicoqueunaclaseAconocesobreunaclaseB,esloqueexponesobresuinterfaz.
●Asímismoelacoplamientovaligadoalaencapsulacióndelosdatos.
Cohesión
●Cómounaúnicaclasesediseñaycómoestasecomporta.Lasclasesdebenircentradasaunsolofín.deestamaneralaclasedebetenerunenfocadopropósito,permitiendolareutilizaciónyfacilitandolamantenibilidad.