Bienvenidos sean a este post, en este post hablamos muy brevemente sobre la programacion orientada a objetos (oop por sus siglas en ingles) pero hoy nos enfocaremos sobre algunas particularidades de este tipo de programacion.
Encapsulacion
La encapsulacion se usa para mantener los trabajos internos de tu codigo en una forma segura de un control no querido por el codigo que usas, permtiendo acceder solo a las propiedades y metodos que nosotros queramos, esto nos da la posibilidad de poder actualizar, extender o mejorar sin afectar al resto del programa que usamos, siempre y cuando se acceda a las partes expuestas de la misma manera.
Ademas esto nos ayuda a evitar errores limitando cual codigo esta causando esta conducta, vamos a suponer el siguiente ejemplo:
Si tenemos una clase llamada Invasor y este invasor vuela boca abajo y cae sobre su espalda si usaste encapsulacion apropiadamente el error estara unicamente en la clase Invasor y no en el motor del juego, otro ejemplo para entender mejor el concepto seria comparar encapsulacion como si fuera un auto.
Podemos decir que el auto tiene distintas clases: el motor, las ruedas , las sillas, etc, vamos a suponer que el auto pasa de combustion a electrico y en este caso solo afectaria a una clase, el motor, el resto no se veria afectado en la modificacion y seguiria funcionando de la misma forma, cuando usamos las clases en la API de Android estariamos trabajando de la misma forma porque al modificar una clase no deberia afectar a las demas.
Herencia
La herencia es tal como suena porque nos permite trabajar y aprovechar todas las propiedades y metodos de las clases que tenemos a disposicion, sin saberlo estuvimos trabajando con esto cuando aplicabamos la palabra extends, veamos un ejemplo de los aplicados hasta ahora:
public class MainActivity extends Activity
Como pueden observar la palabra extends esta seguida de la clase de la cual vamos a heredar todos sus componentes, en este caso Activity nos proporcionara todos los elementos para realizar estas tareas:
- La comunicacion con el Sistema Operativo
- Nos posibilita el metodo setContentView para mostrar en pantalla el contenido de un archivo
- Tambien el acceso para el metodo onTouchEvent para interceptar los toques en pantalla
- Y muchas cosas mas…
Lo bueno de las herencias es permitirnos trabajar con todo lo comentado anteriormente y muchas cosas mas y sin la necesidad de tener que generar una clase como Actitvity sino simplemente haciendo la herencia por medio de extends.
Polimorfismo
El polimorfismo significa diferentes formas, si los objetos que tenemos en el codigo pueden ser mas de un tipo de cosas nosotros podemos tomar ventaja de ello, en Java no tenemos lo que se llama herencia multiple, una herramienta muy interesante de C++, pero si nos permite implementar multiples interfaces y a esto se lo llama polimorfismo, esto nos permite escribir un codigo que depende menos de los tipos que tratamos de manipular y nos permite lidiar con cosas mas genericas permitiendo hacer un codigo mas limpio y claro.
Sumado a lo que vimos anteriormente ahora podremos hacer clases mas completas y si bien cuando creamos nuestro primer juego, Cazador de Submarinos, implementamos algunos temas sin saberlo tambien dijimos que las clases estan compuestos por metodos y propiedades y a su vez codigo, en los proximos posts iremos ahondando en los temas mencionados en este post, y si bien todavia no implementaremos el uso del polimorfismo si iremos viendo de a poco como utilizar encapsulacion y herencia, aunque esta ultima se implementa siempre desde su base como vimos, hasta llegar al uso de polimorfismo pero sera para los proyectos mas complejos donde deberemos utilizar varios objetos y conductas con una misma clase.
En resumen, hoy hemos visto un breve resumen de tres temas que son partes de los pilares fundamentales de la programacion orientada a objetos, hemos hablado de como implementamos uno de los temas en nuestro primer juego y como nos permitiran sacar mayor ventaja para nuestros futuros juegos, espero les haya sido util sigueme en tumblr, Twitter o Facebook para recibir una notificacion cada vez que subo un nuevo post en este blog, nos vemos en el proximo post.
Tengo un Patreon donde podes acceder de manera exclusiva a material para este blog antes de ser publicado, sigue los pasos del link para saber como.

Tambien podes donar
Es para mantenimiento del sitio, gracias!
$1.00