Crear clases y crear objetos en Java

Crear clases y crear objetos en Java

En esta ocasión, empecemos ya a escribir código para crear tus primeras clases y objetos en Java.

Sintaxis de las clases en Java

La sintaxis de clase de Java es la siguiente:

modificadorDeAcceso class NombreDeLaClase {
  // Atributos de la clase
  // Constructores de la clase
  // Métodos de la clase
}

Pondremos un modificador de acceso (ya explicaré esto). Utilizamos la palabra reservada class y le ponemos un nombre a la clase. La convención de escritura de este nombre, es que pongas la primera letra de cada palabra en mayúscula.

Seguido de esto, se crea un bloque con todo su código. El cual, puede contener varios elementos como los comentados en la sintaxis.

¿Qué es el modificador de acceso?

El modificador de acceso es opcional. Podemos poner "public" o "private". No obstante, si decides no especificar uno de estos dos, se asigna automáticamente "package-private", que no es lo mismo que "private".

Explicaré todo esto en otro capítulo. Lo que tenemos que hacer en este, es crear una clase, la cual, la haremos sin usar modificador de acceso, hasta que lo explique.

¿Dónde escribiremos la clase?

Bien, que sepas, que podemos poner una clase dentro de otra clase, pero no quiero que este capítulo se haga complicado, así que vamos fuera de la clase principal del archivo que hemos utilizado siempre (una clase y su método main()) y la escribiremos ahí.

Con esto tan simple, ya la tenemos escrita.

class Usuario {
    
}

El archivo completo de Java, debería quedarte algo como esto, con la nueva clase fuera de las llaves de la otra.

class Usuario {

}

public class Main {
    public static void main(String[] args) {
        //Absoluto vacío aquí
    }
}

Lo que vamos a hacer antes de crear un objeto, es añadirle atributos.

¿Qué son los atributos?

Los atributos son solo variables que están en una clase. Estos servirán para añadirles valor a los objetos que creemos más adelante a partir de la clase.

Añadamos los siguientes atributos:

  • nombre.
  • apellidos.
  • edad.
  • direccion.
  • telefono.

Recuerda, no escribir acentos en los nombres que utilices en Java, solo en las cadenas de caracteres como la que se está usando en el print().

class Usuario {
    String nombre;
    String apellidos;
    int edad;
    String direccion;
    String telefono;
}

Aquí tenemos un nuevo tipo, "String". Este sirve para almacenar valores de tipo texto o cadena de caracteres, como los del print(). Este tipo es especial, de modo que dedicaré algunos capítulos a contarte más cosas sobre él. De momento, que sepas que son para guardar strings.

Ahora, ya tenemos la plantilla de usuarios creada.

Creemos un objeto de esta clase.

Como crear un objeto de una clase en Java

Primero de todo, ¿dónde instanciamos un objeto?

Instanciar, por si lo desconoces, en jerga de programación, se usa como sinónimo de "crear un objeto", de modo, que a partir de aquí, hablaré mucho con ese término.

El objeto debe estar en alguna clase en la cual se tenga acceso a la clase Usuario. Un sitio es dentro de la clase Main. Desde esta, accederemos a la clase con el nuevo objeto.

Para crear un objeto nuevo, vamos a hacerlo de esta forma:

Usuario usuario1 = new Usuario();

Con esto, ya tenemos un objeto llamado usuario1, el cual, es de tipo Usuario (el nombre de la clase a la que pertenece).

Este objeto ya tiene todos los atributos de la clase.

class Usuario {
  	//Atributos
    String nombre;
    String apellidos;
    int edad;
    String direccion;
    String telefono;

}

public class Main {
    public static void main(String[] args) {
        //Instancias de la clase Usuario
        Usuario usuario1 = new Usuario();
    }
}

¿Cómo llamar a un atributo de una clase?

¿Qué podemos hacer con este objeto? Pues cuando necesitemos, utilizarlo, podríamos acceder a los atributos. ¿Necesitas que se imprima en la consola el nombre? Haz una llamada al atributo "nombre" del objeto "usuario1".

Para llamar a un atributo de una clase, tan solo debemos emplear una sintaxis de puntos (.) para acceder a lo que podríamos llamar como una ruta.

Por ejemplo, en las carpetas de tu equipo, si estás en Windows, tienes una ruta como esta:

C:\carpeta1\carpeta2\archivo

Pues aquí, para acceder a un atributo, lo haremos como con las barras, pero con puntos y en lugar de carpetas y archivos, accederemos objetos y atributos.

Probemos de acceder e imprimir el atributo nombre del objeto:

public class Main {
    public static void main(String[] args) {
        //Instancias de la clase Usuario
        Usuario usuario1 = new Usuario();
        System.out.println(usuario1.nombre);
    }
}

Resultado en la consola

null

Vaya, ¿qué crees que ha ocurrido para que devuelva null?

El valor null, es un valor obtenido en programación, que sirve para describir un objeto sin valor alguno. Es decir, es la ausencia de valor.

Esto está ocurriendo, porque no he puesto ningún valor en los atributos. Los he declarado, pero nunca inicializado. Pues bien, voy a hacerlo.

class Usuario {
    //Atributos
    String nombre = "Silvia";
    String apellidos =  "Blanes Alarcón";
    int edad = 27;
    String direccion = "Enrique Granados, 7";
    String telefono = "+34-91-000-000";
}

public class Main {
    public static void main(String[] args) {
        //Instancia de la clase Usuario
        Usuario usuario1 = new Usuario();
      	//Se imprime el valor del atributo nombre
        System.out.println(usuario1.nombre);
    }
}

Resultado en la consola

Silvia

Ahora sí. Me aparece el nombre. Lo mismo con los otros atributos.

Ahora, vamos a aprovechar la plantilla (clase) para crear un segundo objeto, recuerda que las clases sirven para aprovechar código.

class Usuario {
    //Atributos
    String nombre = "Silvia";
    String apellidos =  "Blanes Alarcón";
    int edad = 27;
    String direccion = "Enrique Granados, 7";
    String telefono = "+34-91-000-000";
}

public class Main {
    public static void main(String[] args) {
        //Instancias de la clase Usuario
        Usuario usuario1 = new Usuario();
        Usuario usuario2 = new Usuario();

        //Se imprimen valores de los objetos
        System.out.println(usuario1.nombre);
        System.out.println(usuario2.nombre);
    }
}

Resultado en la consola

Silvia
Silvia

Vaya, está obteniendo el mismo valor…

Esto ocurre, porque he inicializado los atributos de la clase y por defecto, salen todos los objetos de fábrica con los mismos valores. Lo que hay que hacer aquí, es reasignar valores nuevos a los nuevos objetos, o bien, dejar la clase con los atributos sin inicializar e inicializarlos en cada objeto con sus propios valores. Esto lo haré en el siguiente capítulo. Suficiente para este.

Espero que con estos ejemplos y explicaciones, te quede claro de que forma se declaran las clases y los objetos en Java. Aún está todo muy simplificado, pero iremos añadiendo muchas más cosas.

Si te quedan dudas sobre el capítulo, comenta y miraré de ayudarte.

Ejercicios de Java

Te dejo unos ejercicios para que practiques lo aprendido. Las soluciones las encontrarás en el siguiente capítulo del curso.

Empieza los ejercicios con este código:

public class Main {
    public static void main(String[] args) {
    }
}
  1. Crea una clase llamada "Vehiculo" que tenga los atributos "marca", "modelo" y "año".
  2. Inicializa con valores esos atributos.
  3. Imprime con tres println() cada uno de esos atributos.

Intenta no complicarte demasiado y seguir las indicaciones de la parte teórica.

Todo el temario del curso Java aquí.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

curso de Python Entrada anterior ¿Cómo crear aplicaciones con Python – MySQL y Tkinter?
curso de Python Entrada siguiente ¿Cómo crear aplicaciones con Python – MySQL y Tkinter?