Dentro de las estructuras para poder construir nuestros primeros programas en Java, vamos a ver las clases. Para ponernos manos a la obra debemos elegir un IDE de desarrollo. Si eres de los que prefiere un editor visual y sencillo para empezar, puedes elegir Netbeans, a todos los que venís de Visual Studio.NET os puede resultar más sencillo, puesto que su interfaz es muy parecida, si por el contrario, os gusta más el código, te puedes descargar Eclipse, cuya ventaja es que es un entorno que no necesita instalación, y además es el más usado por los programadores de java.
Pues bien, instalados JDK (Java Development Kit), y elegido e instalado nuestro IDE de desarrollo NetBeans, empezamos a ver las clases en java, un método muy potente para organizar y reutilizar nuestros códigos.
¿Qué es una clase en java?
Una clase en Java es la implementación de un tipo de datos. Realmente la clase, es nuestra parte del código donde recogeremos las propiedades y métodos, que tendrá el objeto que instanciaremos, que no es más que hacer uso de esa clase, pero eso lo veremos más adelante. Las clases pueden representar cualquier objeto del mundo real.
Esto quiere decir, la clase persona, que tiene una serie de atributos, color de pelo, peso, color de ojos, fecha de nacimiento, lugar de nacimiento, etc. Un coche, con su marca, color, número de ruedas, kilómetros recorridos, etc.
Así podemos crear una clase que represente cualquier objeto del mundo real, pero una clase sin atributos, no es nada, así que tenemos que añadirle sus propiedades, es decir, como es ese objeto. Y luego lo que puede hacer ese objeto, que serían los métodos.
Un método, sería una acción que puede llevar a cabo ese objeto. Por ejemplo, en el caso de la persona, sería andar, correr, comer, hacer deporte, etc. O en el caso del coche arrancar, parar, frenar, o incluso que esa clase me devuelva información de ese objeto, que es para lo que realmente la creamos, en el caso del coche: devolver el número de kilómetros, la gasolina que ha consumido, o apagar los faros.
Resumiendo un poco, podríamos decir que una clase sería el plano de un edificio y los objetos serían los edificios creados a partir de ese plano.
¿Cómo creo clases en java?
El código de una clase en java es muy sencillo, siguiendo con nuestro ejemplo de la persona.
Crea un nuevo proyecto en tu IDE Netbeans, en el punto de menú «File» hay una opción que pone “New Project”, nos vamos a la carpeta «Java» y dentro de ella hay un proyecto llamado “Java Application”, lo seleccionamos, pulsamos en Next e indicamos el nombre que queremos asignar, en mi caso “appPersona”, ese será el nombre de nuestro paquete, donde se encontrarán las clases de nuestro proyecto, en vuestro caso, el que queráis, y pulsamos sobre finalizar, el código de nuestra clase sería de la siguiente manera:
package appPersona;
public class AppPersona{
public static void main(String[] args) {
// TODO code application logic here
}
}
Éste sería el código para decirle al compilador que lo que vamos a crear es una clase, el package lo crea Netbeans, debido a que tus clases pertenecen siempre a un paquete en éste caso package appPersona , en el caso de querer crear nuevas clases para nuestro proyecto, solo tenemos que irnos al icono de proyecto, el que aparece representado como un paquete de correos, pulsamos sobre botón derecho en “new class”, le ponemos nombre, y pulsamos sobre “Finish”. En nuestro caso vamos a crear una nueva clase llamada Persona
package appPersona;
public class Persona{
}
¿Cuál es la diferencia entre una clase y la otra? En la primera está el método especial main. Este método es el punto de salida de cualquier aplicación Java, es decir, por donde va a comenzar nuestra aplicación Java. Pero ambas clases se encuentra aun vacías y nos preguntamos, ¿y los atributos?
¿Cómo creo los atributos de la clase?
Los atributos de la clase, que hemos dicho que eran los atributos de esa persona, en el caso de nuestro ejemplo de persona, pueden ser: nombre, apellido, color de pelo, fecha de nacimiento, edad,peso, color de ojos, etc…
También podemos ver en algunos sitios, que los atributos, propiedades, también pueden encontrarse como campos, sí, como los de las tablas, porque realmente lo que estamos haciendo es almacenar información, que seguramente se corresponda con un campo, y éste se encuentre en una base de datos.
Que insertado dentro de nuestra clase sería así:
package apppersona;
public class Persona {
// Propiedades de mi clase Persona.
String Nombre;
String Apellido;
String ColorPelo;
String FechaNacimiento;
int Edad;
float Peso;
String ColorOjos;
}
¿Con esto estaría todo? ¿Ya puedo crear los métodos?
Claro que sí, los métodos pueden ser creados incluso sin la necesidad de disponer de atributos dentro de nuestra claro. El primer método que vamos a ver se llama Constructor, y es un método muy especial, puesto que es lo primero que se ejecuta a la hora de instanciar nuestro objeto y es utilizado para inicializar nuestros atributos privados.
El constructor, es un método que no devuelve nada, y que tiene el mismo nombre de la clase, éste puede recibir valores, o no. No hay que preocuparse, si se nos olvida crearlo, java crea uno por defecto si no lo ponemos.
El código de nuestro constructor, que iría dentro de nuestra clase, y justo debajo de nuestras propiedades, tendríamos que crearlo de la siguiente manera:
// Este es el constructor, que es el que da valores iniciales, cuando se crea una clase
public Persona(String Nombre, String Apellido, String ColorPelo, String FechaNacimiento, int Edad, float Peso, String ColorOjos) {
this.Nombre = Nombre;
this.Apellido = Apellido;
this.ColorPelo = ColorPelo;
this.FechaNacimiento = FechaNacimiento;
this.Edad = Edad;
this.Peso = Peso;
this.ColorOjos = ColorOjos;
}
En nuestro caso, nuestro constructor va a inicializar una serie de propiedades, que se encuentran dentro de la misma clase, por ello, tenemos que enviárselos a ese constructor vía parámetros, a la hora de instanciar, de otra manera, nos daría un error, y luego decirle, que hace referencia a los mismos atributos/propiedades/campos de la misma clase, para ello, usamos la palabra reservada “this”, como podemos ver en el ejemplo, e igualarlo a los parámetros que se le envían al constructor.
Y ya podemos pasar a crear los métodos de la clase.
¿Y cómo creo los métodos de mi clase?
Para crear los métodos de la clase, que como hemos visto anteriormente, que serían las acciones que va a realizar nuestra clase, debemos implementarlos de la siguiente manera.
Debemos tener en cuenta si el método devuelve algo o no, y si será accedido desde fuera, así que, vamos a poner nuestro modificador de acceso de la clase en “public”, y como nuestro método devolverá una cadena o texto, ponemos “String” antes del nombre, en este caso es un string, pero puede ser un entero (Int), o un real (float), incluso un Booleano, que nos serán de mucha ayuda, crear métodos que devuelvan valores booleanos. Este método lo pondremos detrás de la declaración del constructor.
Luego para devolver tendríamos que utilizar la palabra reservada “return” seguido de la variable que contiene el valor que queremos devolver.
El código sería el siguiente:
public String estado()
{
String estado_actual;
estado_actual = "andando";
return estado_actual;
}
¿Y ya puedo ejecutar?
No. Aún no podemos ejecutar, ese sería el paso final. Pero antes, como nuestra clase, además de mostrar datos, necesitamos ejecutar también, vamos a crear un método “main”. Éste método será capaz de ejecuta nuestra clase a la hora de compilar el código, es decir, que cuando ejecutemos la clase, el primer método que se ejecutará sea éste.
Y el código sería el siguiente, recuerda, siempre dentro de nuestra clase principal creada anteriormente:
public static void main(String[] args)
{
Persona p = new Persona("Fulanito", "De tal", "Castaño", "16/04/1995", 20, "Delgada", 89, "Marrones");
System.out.println("Hola " + p.Apellido + ", " + p.Nombre + ". Tu estado actual es: " + p.estado() + ".");
}
Aquí instanciaríamos nuestra clase, es decir, crearíamos una variable sobre la clase creada, para poder usarla, ya que, sin ella, no podríamos hacer uso de nuestra clase. Y como parámetros, los valores que queremos mostrar, recuerda, lo que hicimos de poner las variables dentro de los parámetros del constructor, para luego igualarlas a las de las propiedades de la clase con “this”, que para ello enviábamos los valores al constructor previamente.
Y por último para mostrar los datos en pantalla, usaremos el método “System.out.println”, donde nos permitirá como vemos en la imagen mostrar la información, hemos puesto un texto que no cambia metido entre comillas dobles, y luego llamando a nuestro objeto creado “p”, de nuestra clase “Persona”, la notación de “.” para acceder, seguido de la propiedad/atributo/campo de la clase al que queremos acceder.
El código quedaría así, si lo ejecutáis podéis ver en la pantalla de la consola, la información que contiene nuestro objeto:
//Fichero AppPersona.java
package apppersona;
public class AppPersona {
public static void main(String[] args) {
// TODO code application logic here
Persona p = new Persona("Emilio", "Perez", "Castaño", "01/01/1980", 35, 87, "Marrones");
System.out.println("Hola " + p.Apellido + ", " + p.Nombre + ". Tu estado actual es: " + p.estado() + ".");
}
}
// Fichero Persona.java
package apppersona;
public class Persona {
// Propiedades de mi clase Persona.
String Nombre;
String Apellido;
String ColorPelo;
String FechaNacimiento;
int Edad;
float Peso;
String ColorOjos;
public Persona(String Nombre, String Apellido, String ColorPelo, String FechaNacimiento, int Edad, float Peso, String ColorOjos) {
this.Nombre = Nombre;
this.Apellido = Apellido;
this.ColorPelo = ColorPelo;
this.FechaNacimiento = FechaNacimiento;
this.Edad = Edad;
this.Peso = Peso;
this.ColorOjos = ColorOjos;
}
public String estado() {
String estado_actual;
estado_actual = "andando";
return estado_actual;
}
}
¿Puedo ejecutar ya mi código?
Ahora, sí. El último paso para ver en funcionamiento nuestro código sería pulsar sobre el icono “Ejecutar” de Netbeans y comprobar que nos aparece la información de nuestro objeto en la consola, como vemos la información que insertamos en nuestro objeto.
En resumen, hemos instalado el jdk para poder crear nuestros programas y hemos instalado el IDE de desarrollo, en nuestro caso, nos hemos decantado por Netbeans, porque para empezar, es mucho mejor, es mucho más visual. Como hemos visto, es muy sencillo, crear nuestra primera clase persona, a la cual le he creado un objeto para poder usarla en nuestro programa, le hemos dado datos al objeto, y hemos creado nuestro primer método, que hace que veamos en el estado que se encuentra nuestra persona, y lo hemos imprimido por pantalla.
Las clases, son una forma muy potente, porque nos permite, tener el código de nuestras aplicaciones ordenado de una manera lógica y estructurada, y si tenemos que cambiar el código, podemos hacerlo de una manera rápida y sencilla, y poder trabajar en equipo, ya que los proyectos se pueden dividir, y cada programador dedicarse a una parte del código, incluso podemos reutilizar esas clases, en diferentes proyectos, ya que solo tendríamos que incluirla. De ésta manera, tenemos nuestros proyectos ordenados, de una manera más cómoda.
Si has llegado hasta aquí es porque te interesa aprender Java, por ello hemos creado varias opciones que pueden interesarte:
- Podcast «Aprende a Programar» donde cada martes hablamos sobre programación. Por ejemplo, en el episodio 33 hemos hablado sobre «Polimorfismo en la Programación Orientada a Objetos«
- Curso de Introducción a Java. En este curso te enseñamos los primeros pasos que debes tener en cuenta si quieres comenzar a programar con Java.
- Curso de Introducción a la Certificación 1Z0-808 de Java. A lo largo de este curso te enseñamos lo que tienes que tener en cuenta para obtener la Certificación de Oracle llamada Oracle Certificate Associate.