Anuncios

Bienvenidos sean a este post, ya hemos hablado sobre clases y objetos, como se implementan y tambien hemos visto algunas implementaciones en nuestro primer juego pero hoy explicaremos bien como trabaja.

Anuncios

Hasta ahora hemos hablado muy por arriba el tema de las clases y objetos, cuando utilizamos una clase se le denomina implementacion de clase, vamos a suponer el siguiente archivo conteniendo el siguiente codigo:

soldado.java

public class Soldado
{
	int salud;
	string tipoSoldado;

	void disparar()
	{
		... instrucciones ...
	}
}
Anuncios

En esta clase basica tenemos dos variables para almacenar la informacion del soldado, en este caso son para la salud y que clase de soldado es y por otro lado tenemos un metodo llamado disparar para efectuar la accion de disparar a los enemigos, en caso de no haberlo mencionado antes las funciones (en este caso disparar) trabajan de la siguiente forma:

[modificador] tipoDato nombreFuncion ([argumentos])
{
… instrucciones …
}
Anuncios
Anuncios

En este caso de forma opcional ira el modificador, recuerden que eran public, private y protected, el cual dependera de cuanto acceso queremos conceder a nuestras funciones, luego ira el tipo de dato (string, float, void, etc) que nos devolvera, el siguiente elemento es el nombre de la funcion (este dato y el anterior son obligatorios), para despues utilizar los parentesis para recibir argumentos que podemos utilizar en el bloque de la funcion, por ultimo en el bloque iran todas las instrucciones pertinentes, en el caso de la clase de ejemplo es para hacer que nuestro soldado dispare, cuando no sabemos que tipo nos devolvera se usa void, es una especie de comodin, este tipo es el mas utilizado especialmente cuando nuestra funcion no devuelve ningun tipo de valor, con esto comentado continuemos.

En general con Java podemos utilizar las clases de una forma generica indicando el nombre de la misma seguidos del metodo o variable de la misma para poder utilizarlas pero en la practica utilizaremos un objeto creado desde la clase (esto se llama instanciar) lo cual nos permitira tener mejor acceso a los elementos de las clase todas las veces que necesitemos en el codigo.

Anuncios

Para entender mejor este concepto veamos como es una definicion de un objeto, tomando la clase de ejemplo:

Soldado miSoldado = new Soldado();
Anuncios

Se define igual que una variable comun pero en lugar de usar un tipo de dato utilizaremos la clase que necesitemos, despues llevara el nombre de identificacion, ahora esta variable sera de tipo Soldado, el signo igual es para asignar un valor y lo que sigue es el constructor de nuestro objeto.

Anuncios

El constructor es una funcion que existe en toda clase de forma predeterminada (aunque no lo definamos) y su tarea principal es reservar un espacio en memoria para almacenar la informacion de nuestro objeto, otra forma de definirlo puede ser:

Soldado miSoldado;
miSoldado = new Soldado();
Anuncios

Al igual que una variable comun podemos declararla primero y luego definirla, en todo caso en cualquiera de los dos ejemplos hacen exactamente lo mismo, con nuestro objeto creado veamos como podemos acceder a los elementos de la clase:

miSoldado.salud = 100;
miSoldado.tipoSoldado = "francotirador";

miSoldado.disparar();
Anuncios
Anuncios

Con esto tenemos nuestro primer soldado creado, como pueden observar utilizamos al objeto y no a la clase, esto lo hacemos porque miSoldado tiene su propio espacio de memoria reservado y en este manejara todos los datos de este soldado, tambien recuerden que para acceder tanto a las variables como los metodos de la clase que lo creo siempre se hace por medio del operador punto (.) y este lo usaremos con todos los elementos que sean necesarias, ahora vamos a crear otro soldado:

Soldado miSoldado2;
miSoldado2 = new Soldado();
miSoldado2.salud = 1000;
miSoldado2.tipoSoldado = "commando";
miSoldado2.disparar();

Como pueden ver lo unico que cambio fue el nombre del objeto (miSoldado2), despues usamos las mismas variables y los mismos metodos pero este soldado no tiene nada que ver con el anterior por el constructor el cual le asigno otro espacio de memoria y con esto obtuvimos de la misma clase dos objetos distintos, observen que este tambien es otro tipo de soldado con otros valores, esta es la ventaja mas importante porque con una sola clase podemos tener un monton de objetos derivados de la misma y cada uno con su conducta propia.

Anuncios

Una buena practica y convencion en Java es tener a cada clase en un archivo individual por fuera de la clase principal pero tambien podemos tener una clase anidada dentro de otra clase, aunque esto ultimo se hace mas bien cuando se estudia o practica en un tema en particular por un tema de practicidad a la hora de trabajarlo pero en general se usan archivos individuales ya que esto nos permite implementarlo en otros proyectos, por ejemplo en nuestro primer proyecto.

Anuncios
Nota: si quieren saber mas sobre clases en Java les recomiendo este post.
Anuncios

En resumen, hoy hemos visto como se implementa una clase, como es su estructura mas basica, como es la buena practica de la misma, tambien hemos visto cual es la ventaja mas importante de trabajar de esta forma, una breve explicacion de que es una funcion y que es un constructor, espero que les haya sido de utilidad 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.

Anuncios

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