Muchos lenguajes de programación trabajan con el concepto de «objeto», pero cada uno lo maneja de diferente manera y le da un significado específico. Por ejemplo, en JavaScript los objetos sirven para almacenar datos complejos. En Java, por su parte, los objetos tienen muchas más funciones. En este artículo revisaremos algunas de ellas.
Continúa leyendo para descubrir qué es un objeto en Java, para qué sirve y cómo usarlo. Exploraremos cómo identificar los componentes de los objetos en este lenguaje de programación y algunos ejemplos de código que te dejarán ver cómo funcionan estos elementos.
¿Qué es un objeto en Java?
Un objeto en Java es una entidad que representa información sobre una cosa dentro del código de un programa. Como tal, los objetos en este lenguaje son instancias o miembros de una clase definida, que tienen propiedades, atributos y características que los distinguen del resto, tal como los objetos en el mundo real.
¿Qué elementos definen a un objeto en Java?
Los objetos en Java tienen tres características primarias: identidad, estado y comportamiento. Con estas propiedades se pueden construir bloques de objetos. Veamos cómo trabajan en conjunto estas características:
- Identidad: la identidad de un objeto es un identificador único, tal como la dirección de almacenamiento, el ID del usuario o incluso un nombre.
- Estado: el estado controla aspectos específicos del objeto. Por ejemplo, si queremos describir un ventilador, podemos tener los estados «encendido», «apagado» o «alta potencia».
- Comportamiento: se relaciona con los estados en cuanto que estos modifican el comportamiento del objeto. Sirve para describir lo que hacen los objetos referidos.
Como puedes ver, estas tres características trabajan en conjunto y son indisociables. No puedes tener un objeto sin nombre, tampoco puede tener un comportamiento sin un estado.
En la vida real, nos encontramos con objetos todo el tiempo. Imagina que Java imita esos objetos. Por ejemplo, muchos desarrolladores comparan estos elementos con automóviles, que tienen identidades, estados y comportamientos.
Piensa en cualquier automóvil. No importa cuál tengas en mente: fue producido por una empresa en particular, es un modelo específico y tiene un número de serie. Estos elementos definen su identidad. Asimismo, el automóvil puede tener diferentes estados: apagado, neutral, reversa, etcétera. Estos estados conllevan comportamientos definidos; por ejemplo, si usas tu acelerador, el vehículo se pondrá en movimiento debido a sus mecanismos internos.
Java permite crear objetos de este tipo dentro de clases; estos elementos son también conocidos como instancias. Veamos qué relación guardan las clases y los objetos.
Clases y objetos en Java
Debido a que Java es un lenguaje de programación orientado a objetos, todos los elementos que utilizamos en este lenguaje son objetos. Lo que los distingue es que cada uno tiene un nombre diferente y pertenece a una clase única que establece el modelo general de los objetos que la componen. Por ejemplo, podemos tener muchos automóviles que representen objetos, pero todos ellos pertenecen a fin de cuentas a la misma clase: la de los automóviles.
Cada clase tiene un nombre particular que permite crear instancias u objetos dentro de ella. Lo que hace una clase es definir los estados y comportamientos del objeto para que todas las instancias dentro de ella tengan las mismas propiedades.
¿Cómo crear un objeto en Java?
Para crear una instancia dentro de una clase, lo que debes hacer es identificar en cuál de ellas quieres crear un objeto. Para continuar con nuestro ejemplo: una buena estrategia es comenzar creando una clase especial para los automóviles. Para crear esta clase puedes utilizar el siguiente código:
public class Automovil{
private String NoSerie;
private boolean Encendido;
private int velocidad;
public Automovil(String NoSerie) {
this.NoSerie = NoSerie;
}
public void setIsEncendido() {
this.isEncendido = !isEncendido;
}
public boolean getIsEncendido() {
return isEncendido;
}
public void setvelocidad(int velocidad) {
this.velocidad = velocidad;
}
public int getvelocidad() {
return velocidad; }
}
En este ejemplo, podemos notar que hemos ingresado la información esencial para instanciar un objeto dentro de la clase: su identidad (número de serie), su estado (encendido) y su comportamiento (velocidad). Ahora es momento de crear el objeto que nos interesa. Para ello deberemos definir los valores de cada uno de estos elementos.
public class Main {
public static void main(String[ ] args) {
Automovil myAutomovil = new Automovil("vhjujhm16513hgtfs5rf82f");
myAutomovil.setIsEncendido( );
myAutomovil.velocidad = 35;
String automovilSerie = "El No de Serie de mi automovil es: " + myAutomovilSerie;
String automovilEstado = "The car’s running state is: " + myAutomovil.IsEncendido;
String automovilVelocidad = "Current speed: " + myAutomovil.velocidad;
System.out.println(automovilSerie);
System.out.println(automovilEstado);
System.out.println(automovilVelocidad);
}
}
Con este código has creado tu clase principal. Incluso has dado la instrucción al programa de imprimir el objeto una vez que se hayan llenado los campos solicitados. A partir de este punto, para crear objetos únicamente deberás escribir una línea de código como la siguiente que indica una nueva instanciación:
Automovil myAutomovil = new Automovil("vhjujhm16513hgtfs5rf82f");
Automáticamente el sistema creará un objeto nuevo con ese número de serie, que funcionará como un identificador único. Posteriormente, tendrás listo tu objeto para acceder a su información y modificar su estado (encendido o no) y su comportamiento (la velocidad a la que avanza).
Programar con objetos en Java
Con toda la información que hemos revisado tienes las nociones básicas para comenzar a utilizar objetos en Java. Sustituye valores en las líneas de código que te hemos compartido y crea más comportamientos y estados para probar tus conocimientos.
Ten en mente que esto es apenas el principio. Aún debes aprender en detalle qué es una clase en Java y comprender cómo complementar ambos aspectos para mejorar tu código y crear increíbles proyectos en Java.