Bienvenidos sean a este post, hoy veremos un poco mas sobre clases y objetos. Java es un lenguaje orientado a objetos por ende tiene un soporte a los siguientes procedimientos:
- Polimorfismo
- Herencia
- Encapsulación
- Abstracción
- Clases
- Objetos
- Instancias
- Métodos
- Analisis de mensajes
La mayoria de los procedimientos antes mencionados, o todos, son derivados de C++ donde trabajan de forma parecida pero como dice en este titulo nos centraremos en los Objetos y clases. Como vimos antes los objetos son elementos creados desde una clase, la clase vendria a ser la base para definir y declarar atributos o metodos para ser utilizados, veamos a continuacion de un ejemplo de clase:
public class Perro {
String raza;
int edad;
String color;
void Ladrar() { }
void comer() { }
void correr() { }
}
Este es un ejemplo de una clase comun y ordinaria, tomaremos como ejemplo un Perro el cual va a ser la clase, aca tendremos por ejemplo los atributos (variables) del mismo como pueden ser la raza, la edad o el color y los metodos (funciones) van a estar relacionadas a las acciones del perro, esto es una forma muy basica es decir los metodos siempre van a ser las acciones de una clase y los atributos son para guardar las caracteristicas o datos relacionadas a una clase, ahora veamos un poco sobre los distintos de atributos o variables disponibles:
- Variables locales, este tipo de variables tienen la particularidad de ser utilizadas en los metodos, constructores o bloques de instrucciones pero que desapareceran cuando el evento creador sea finalizado
- Variables de instancias, tienen la particularidad de poder ser utilizadas por fuera de los metodos de una clases y estas pueden ser accedidas por los objetos creados de la clase o por metodos propios de la clase
- Variables de clases, similar al anterior se declaran por fuera de los metodos de la clase pero son definidas con la palabra static en la misma
Ahora hablaremos sobre los constructores, otra de las piezas fundamentales a la hora de trabajar. Al igual que en C++ todas las clases poseen constructores, estas pueden ser definidas pero en caso de no declararla la clase se encargara de crear el mismo por defecto. Los constructores se utilizan para generar varias instancias de nuestra clase y poder utilizar la misma con distintas variables, a esto se le llama Polimorfismo, y como ultimo dato el constructor debe tener siempre el mismo nombre que la clase.
Veamos un ejemplo de como se crea el o los constructores:
public class Puppy
{
public Puppy(){}
public Puppy(String nombre)
{
// este constructor recibe el nombre
}
public Puppy(String nombre, int edad)
{
// este recibe el nombre y la edad
}
}
En este caso tenemos una clase llamada Puppy, veamos nuestro primer constructor en este caso cuando no tiene ningun dato o instruccion se lo llama habitualmente constructor predeterminado, en caso de no declararlo el compilador puede crearlo automaticamente pero es una buena practica declararlo si va a existir mas de uno, luego tenemos otro constructor pero este le dara la posibilidad de poder recibir un dato a nuestra clase, en este caso el atributo de nombre, para poder procesarlo y asignarlo a alguna variable, en este caso a nombre, y por ultimo el tercer constructor puede recibir dos atributos: nombre y edad, para poder procesarlas en nuestras clase. Esto que vemos es util para cuando debemos hacer que nuestra clase pueda tener distintas formas de crear los objetos en base a los constructores porque en determinados momentos por ahi solo necesitamos acceder a nuestra clase pero en otros casos tambien deberemos enviar informacion a ella para poder utilizar de forma distinta, esto basicamente es la utilizacion de los constructores.
Ahora pasemos a ver como se crea un objeto, para la creacion de un objeto se debe seguir los siguientes tres pasos:
- Declaracion, la asignacion del nombre en una variable con previamente la clase para saber de quien es el objeto
- Instanciacion, esto se hace a traves de la palabra reservada new
- Inicializacion, es la llamada a un constructor despues de la palabra new
Para entender mejor este concepto veamoslo atraves del siguiente ejemplo:
public class Puppy
{
public Puppy(String nombre)
{
System.out.println("El nombre pasado es: " + nombre);
}
public static void main(String []args)
{
Puppy myPuppy = new Puppy("Arturo");
}
}
Como pueden creamos nuestra clase llamada Puppy, luego crearemos un constructor de nuestra clase para recibir en este un dato llamado nombre, y luego por medio del metodo println() mostraremos ese mensaje en pantalla, luego iniciamos el bloque main() para crear nuestro objeto, analicemos esta linea:
Puppy myPuppy = new Puppy("Arturo");
Primero nombramos la clase, en este caso Puppy, luego definimos el nombre del objeto, en este caso myPuppy, luego lo instanciamos por medio del new y por ultimo lo iniciamos por medio del constructor antes definido y le pasamos el dato. Ahora si lo compilamos y lo ejecutamos obtendremos la siguiente salida:
tinchicus@dbn001vrt:~/java/program$ java Puppy
El nombre pasado es: Arturo
Como pueden ver ejecuta el metodo del constructor pero tambien recibe y procesa la informacion enviada en nuestro objeto, ahora vamos a ver como acceder a las variables y metodos de las clases por medio de los objetos creados, modifiquemos el codigo anterior de la siguiente manera:
public class Puppy
{
int puppyAge;
public Puppy(String nombre)
{
System.out.println("El nombre pasado es: " + nombre);
}
public void setAge(int age)
{
puppyAge = age;
}
public int getAge()
{
System.out.println("La edad es de: " + puppyAge);
return puppyAge;
}
public static void main(String []args)
{
Puppy myPuppy = new Puppy("Arturo");
myPuppy.setAge( 2 );
myPuppy.getAge();
System.out.println("Valor de la variable: "
+ myPuppy.puppyAge );
}
}
Veamos los cambios de nuestra clase, primero creamos una variable de tipo int (entera) llamada puppyAge, luego el constructor queda como estaba, ahora tenemos dos metodos nuevos: el primero llamado setAge() el cual se encargara de recibir un valor X y asignarlo a la variable puppyAge, el siguiente metodo es getAge() para devolvernos el valor de puppyAge y en este caso lo mostraremos en pantalla con un mensaje por medio del metodo println() y a su vez retorna el valor y con esto terminamos las modificaciones realizadas en nuestra clase. Ahora pasemos al cuerpo de main(), primero creamos el objeto como era antes, veamos la siguiente linea:
myPuppy.setAge( 2 );
Con esto utilizaremos el metodo setAge(), como pueden ver primero nombramos el objeto creado (myPuppy), luego por medio del punto le decimos que vamos a utilizar un metodo o una variable de la clase creadora del objeto, en este caso le pasamos el metodo setAge() y dentro le informamos el valor para asignar a la variable puppyAge.
Ahora veamos la siguiente linea:
myPuppy.getAge();
Como en el caso anterior, primero va el objeto luego con el punto le indicamos que utilizaremos un metodo o atributo de la clase y en este caso utilizaremos el metodo getAge() para ejecutar este metodo y que nos muestre un mensaje en pantalla, es decir que ejecute las instrucciones dentro del metodo llamado. Ahora veamos la ultima linea:
System.out.println("Valor de la variable: " + myPuppy.puppyAge );
En esta linea mostraremos un mensaje en pantalla y como pueden ver al igual que en los casos anteriores primero nombramos el objeto, luego con el punto y seguido con el atributo de la clase podremos mostrar la informacion almacenada en la misma, si lo compilamos y lo ejecutamos obtendremos una salida como la siguiente:
tinchicus@dbn001vrt:~/java/program$ java Puppy
El nombre pasado es: Arturo
La edad es de: 2
Valor de la variable: 2
tinchicus@dbn001vrt:~/java/program$
Como pueden ver es bastante sencillo, por ahora, porque el procedimiento seria crear un objeto y luego accederemos a los metodos y/o atributos de la clase por medio de este objeto, para ello se utiliza un punto para decirle que de este objeto accederemos a los atributos y/o metodos tal como se ve en el codigo fuente.
En resumen, hoy hemos visto que son las clases y objetos, como son las clases, como se crean los objetos, hablamos de los constructores y como acceder a los metodos y variables de las clases por medio de los objetos creados de esta. 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.50