martes, 12 de junio de 2012

Programando XI – Conceptos de POO

Antes de continuar programando, ya sea en Unity o ActionScript (aun no lo he decidido) tenemos que dejar claras unas cuantas cosas en forma de teoria que tienen que ver con la Programación Orientada a Objetos (POO). 

En la POO hay clases y objetos. Una clase es como un molde que usaremos para crear los objetos. Pensar por ejemplo en el molde de un pastel, con el cual podeis hacer muuuuchos pasteles, que serían los objetos. Así, nuestro “molde” o clase, tiene unas caracteristicas (en forma de variables o atributos) y en el caso de programación puede realizar unas acciones (a través de metodos). Veamos un ejemplo:

Tenemos una clase Nave, cuyos atributos son: color, velocidad, posicionX y posicionY (variables que pertenecerán a la clase) y cuyas acciones son: disparar y cargarMagia (métodos que también pertenecen a la clase). Con esto tenemos el molde y gracias esto podemos crear un monton de naves u “objetos” indicandole tan solo los valores que debe tener cada atributo (distinto para cada nave que creemos) y cada una podrá ejecutar las acciones disparar o cargarMagia cuando le sea necesario sin afectar a las demás.

Por lo tanto vemos que un objeto, en el caso de los videojuegos, son prácticamente todos los elementos de la pantalla. Una nave es un objeto, el protagonista también, el tablero de juego, etc.

Veamos una definición más elaborada:

Una clase representa una entidad que tiene un estado interno y un comportamiento característico, mientras que un objeto es cualquier individuo de una ocurrencia de esa clase. El estado de un objeto es un conjunto de parámetros con los valores concretos que lo caracterizan y que reciben el nombre de atributos. Por otro lado las acciones son funciones dentro del objeto y serán conocidas como métodos (o acciones).

Características de la POO

Abstracción, Encapsulamiento, Modularidad, Herencia y Polimorfismo.

 Es un poco dificil explicar cada una, por eso lo haré más adelante cuando me lo prepare un poco (espero saber explicarlo más o menos), pero digamos que hay muchas ventajas en esta forma de programación, sobretodo para videojuegos y para trabajar en equipos de programación con varias personas al mismo tiempo.

No hay comentarios:

Publicar un comentario