Revista Informática

Java desde Cero: Clases y Objectos

Publicado el 08 enero 2014 por Codehero @codeheroblog

Clases

Una clase es una plantilla de la que se crean los objetos individuales.

A continuación vamos a ver un ejemplo de una clase en Java:

public class Carro{ String marca; int kilometraje; String color; void encender(){ } void acelerar(){ } void apagar(){ } }

1234567891011121314 publicclassCarro{   Stringmarca;   intkilometraje;   Stringcolor;    voidencender(){   }      voidacelerar(){   }      voidapagar(){   }}

Una clase puede contener cualquiera de los siguientes tipos de variables:

  • Variables locales: Las variables definidas dentro de los métodos, los constructores o los bloques se denominan variables locales. Se declara la variable y se inicializa en el método y la variable será destruida cuando el método se ha completado.

  • Variables de instancia: Las variables de instancia son variables dentro de una clase, pero fuera de cualquier método. Estas variables se crean instancias cuando se carga la clase. Las variables de instancia se puede acceder desde el interior de cualquier método, constructor o bloques de esa clase en particular.

  • Variables de clase: Las variables de clase son variables declaradas dentro una clase y fuera de cualquier método. En el ejemplo anterior marca, kilometraje y color son variables de clase Carro.

Una clase en Java puede tener cualquier número de métodos para acceder o modificar el comportamiento de dicha clase. En el ejemplo anterior encender, acelerar y apagar son métodos de clase Carro.

Una vez que tenemos una idea general de que es una clase en Java y cuales son sus características es importante revisar los siguientes aspectos:


Constructores

Cuando se discute acerca de las clases, uno de los temas más importantes tópicos serian los constructores. Cada clase tiene un constructor. Si no escribimos explícitamente un constructor para una clase el compilador de Java genera un constructor predeterminado para esa clase.

Cada vez que se crea un nuevo objeto, se invocará al menos un constructor. La regla principal de los constructores es que ellos deben tener el mismo nombre que la clase. Como dato importante una clase puede tener más de un constructor.

Vemos un ejemplo:

public class Carro{ public carro(){ } public carro(String marca){ // El constructor tiene solo un parametro, en este caso marca } }

12345678 publicclassCarro{   publiccarro(){   }    publiccarro(Stringmarca){  // El constructor tiene solo un parametro, en este caso marca   }}

Observemos que en el ejemplo anterior tenemos dos constructores el primero que es un con constructor sencillo en el cual podemos inicializar variables de la clase con los valores que nosotros queramos y el segundo es un constructor el cual acepta un parámetro, es decir, para poder instanciar un objeto de esta clase con este constructor siempre vamos a tener que pasarle el nombre de la marca.


¿Cómo crear un objeto?

Como se mencionó anteriormente, una clase proporciona los planos de objetos. Así que, básicamente, un objeto se crea de una clase. En Java, la palabra clave new se utiliza para crear nuevos objetos.

Existen tres pasos al crear un objeto de una clase:

  • Declarar: Debemos declarar una variable con su nombre y con el tipo de objeto que va a contener.
  • Instanciar: La palabra clave new se utiliza para crear el objeto.
  • Inicialización: La palabra clave new va seguida de una llamada a un constructor. Esta llamada inicializa el nuevo objeto.

Si seguimos el modelo del ejemplo anterior:

public class Carro{ public carro(String marca){ // El constructor tiene solo un parametro, en este caso marca System.out.println(“La marca es : " + marca ); } public static void main(String []args){ // Creamos la variable carro Carro miCarro = new Carro( "Ford" ); } }

1234567891011 publicclassCarro{    publiccarro(Stringmarca){  // El constructor tiene solo un parametro, en este caso marca  Systemoutprintln(La marca es:" + marca );    }   public static void main(String []args){  // Creamos la variable carro  Carro miCarro = new Carro( "Ford");   }}

Observemos que poseemos un constructor el cual recibe un parametro, en este caso la marca del carro, el cual va a imprimir el nombre de la marca cada vez que inicializemos un objeto de la clase carro.

A su vez con Carro miCarro = new Carro( "Ford" ) estamos cumpliendo los pasos que explicamos anteriormente ya que declaramos una variable llamada miCarro de la clase Carro, la instanciamos al hacerle new y la inicializamos al llamar al constructor con Carro( "Ford" ).

Si compilamos el condigo anterior obtenemos:

La marca es : Ford

1 La marca es:Ford


Acceso a variables

Se accede a las variables y métodos de instancia a través de los objetos creados.

Para acceder a la instancia de una variable la ruta de acceso completa debe ser el siguiente:

/* Primero creamos un objeto */ Objeto = new Constructor(); /* Ahora llamamos a la variable de la clase de la siguiente manera */ Objeto.nombreDeLaVariable; /* También podemos acceder al método de la clase */ Objeto.nombreDelMetodo();

12345678 /* Primero creamos un objeto */Objeto=newConstructor(); /* Ahora llamamos a la variable de la clase de la siguiente manera */ObjetonombreDeLaVariable; /* También podemos acceder al método de la clase */ObjetonombreDelMetodo();


Ejemplo

Veamos un ejemplo que recopile todo lo que vimos hasta ahora:

public class Carro{ int kilometraje; public Carro(String marca){ // El constructor tiene solo un parametro, en este caso marca System.out.println(“La marca es : " + marca ); } public void setKilometraje( int kilometraje ){ this.kilometraje = kilometraje; } public int getKilometraje( ){ System.out.println(“El kilometraje es : " + kilometraje ); return this.kilometraje; } public static void main(String []args){ /* Creación */ Carro miCarro = new Carro( "Ford" ); /* Seteamos el kilometraje del carro */ miCarro.setKilometraje( 2000 ); /* Obtenemos el kilometraje del carro */ miCarro.getKilometraje( ); /* También podemos acceder a la variable de la clase */ System.out.println(“Valor variable : " + miCarro.kilometraje ); } }

123456789101112131415161718192021222324252627282930 publicclassCarro{      intkilometraje;    publicCarro(Stringmarca){  // El constructor tiene solo un parametro, en este caso marca  Systemoutprintln(La marca es:" + marca );   }   public void setKilometraje( int kilometraje ){   this.kilometraje = kilometraje;   }    public int getKilometraje( ){   System.out.println(“El kilometraje es : "+kilometraje);   returnthiskilometraje;   }   publicstaticvoidmain(String[]args){  /* Creación */  Carro miCarro=newCarro("Ford");   /* Seteamos el kilometraje del carro */  miCarrosetKilometraje(2000);   /* Obtenemos el kilometraje del carro */  miCarrogetKilometraje();   /* También podemos acceder a la variable de la clase */  Systemoutprintln(Valor variable:"+miCarrokilometraje);   }}

Observemos lo siguiente: tenemos una clase llamada Carro, la cual posee un constructor, dos métodos para modificar los valores de las variables de la clase(getKilometraje y setKilometraje). Y por ultimo tenemos un programa el cual instancia una variable de la clase Carro, le asigna el kilometraje de 2000 a ese objeto y luego lo imprime en la consola.

Si compilamos el ejemplo obtenemos:

La marca es : Ford El kilometraje es : 2000 Valor variable : 2000

123 La marca es:FordEl kilometraje es:2000Valor variable:2000


Conclusión

En esta lección, vimos todo lo relacionado al manejo de objetos y clases dentro de Java. Si tienes alguna pregunta, yo estaré feliz de responderte en los comentarios, además espero que te unas y le eches un vistazo a todo el resto de este curso.

¡Te espero la próxima semana!


Volver a la Portada de Logo Paperblog