Clases y Objetos en Java: Guía Práctica
Clases y Objetos en Java
Descubre cómo el modelo de clases y objetos de Java convierte conceptos del mundo real en código reutilizable.
Java es fundamentalmente orientado a objetos. Divide problemas complejos en entidades manejables y auto-contenidas—objetos—cada uno con estado y comportamiento.
Un objeto puede ser cualquier cosa que guarde datos (estado) y ofrezca acciones (comportamiento). Por ejemplo, una bicicleta tiene:
- Estados: reposo, primera marcha, etc.
- Comportamientos: frenar, acelerar, etc.
Antes de sumergirnos en objetos, exploremos el plano que los define: una clase.
Clase en Java
Una clase es la plantilla a partir de la cual se instancian objetos. Piensa en ella como un plano de casa que especifica pisos, puertas y ventanas. Múltiples casas pueden construirse del mismo plano, al igual que muchos objetos pueden crearse de una sola clase.
Crear una Clase en Java
Define una clase con la palabra clave class:
class NombreClase {
// campos
// métodos
}
Los campos (variables) guardan el estado de un objeto, mientras que los métodos encapsulan su comportamiento.
- Los campos almacenan datos.
- Los métodos realizan operaciones.
Ejemplo: una clase Bicycle.
class Bicycle {
// estado
private int gear = 5;
// comportamiento
public void braking() {
System.out.println("Funcionamiento del Frenado");
}
}
Aquí, Bicycle es un prototipo. Múltiples instancias de bicicleta pueden crearse, cada una compartiendo la misma estructura pero manteniendo datos independientes.
Nota: private y public son modificadores de acceso que controlan la visibilidad. Para más detalles, ve Modificadores de Acceso en Java.
Objetos en Java
Un objeto es una instancia de una clase. Por ejemplo, Bicycle es la clase, y MountainBicycle, SportsBicycle, TouringBicycle, etc., son objetos distintos derivados de esa clase.
Crear un Objeto en Java
Instancia un objeto con la palabra clave new y el constructor de la clase:
nombreClase objeto = new nombreClase(); // Para Bicycle
Bicycle sportsBicycle = new Bicycle();
Bicycle touringBicycle = new Bicycle();
Los constructores son métodos especiales que comparten el nombre de la clase. Para más lectura, explora Constructores en Java.
Nombres como sportsBicycle y touringBicycle sirven como referencias a sus respectivas instancias.
Múltiples instancias de la misma clase pueden coexistir sin interferir entre sí.
Nota: Los campos y métodos de una clase se conocen colectivamente como miembros.
Acceder a Miembros de una Clase
Usa el operador punto con una referencia de objeto para alcanzar sus miembros:
class Bicycle {
int gear = 5;
void braking() {
// ...
}
}
Bicycle sportsBicycle = new Bicycle();
sportsBicycle.gear;
sportsBicycle.braking();
Aquí, sportsBicycle accede al campo gear e invoca el método braking().
- sportsBicycle.gear – lee el valor de gear.
- sportsBicycle.braking() – llama a la rutina de frenado.
En el próximo capítulo, exploraremos los métodos de Java en profundidad.
A continuación se muestra un ejemplo completo que une estos conceptos.
Ejemplo: Clase y Objetos en Java
class Lamp {
// Rastrea si la lámpara está encendida
boolean isOn;
void turnOn() {
isOn = true;
System.out.println("Light on? " + isOn);
}
void turnOff() {
isOn = false;
System.out.println("Light on? " + isOn);
}
}
class Main {
public static void main(String[] args) {
Lamp led = new Lamp();
Lamp halogen = new Lamp();
led.turnOn();
halogen.turnOff();
}
}
Salida:
Light on? true Light on? false
En este programa, Lamp define una variable de instancia isOn y dos métodos que la manipulan. La clase Main crea dos objetos lámpara—led y halogen—e invoca sus métodos independientemente.
Cada objeto mantiene su propia copia de isOn, asegurando que las operaciones en una lámpara no afecten a la otra.
Ejemplo: Crear Objetos Dentro de la Misma Clase
Los objetos también pueden instanciarse dentro de la misma clase que los define. Así es cómo:
class Lamp {
boolean isOn;
void turnOn() {
isOn = true;
System.out.println("Light on? " + isOn);
}
public static void main(String[] args) {
Lamp led = new Lamp();
led.turnOn();
}
}
Salida
Light on? true
Este patrón es útil para demostraciones pequeñas o clases de utilidad donde la lógica principal reside dentro de la misma clase.
Java
- Clases y Objetos en C++: Guía Práctica de Programación Orientada a Objetos
- Variables y Literales en Java: Guía Completa
- Palabra clave final en Java: Variables, métodos y clases
- Operador instanceof en Java: Guía completa
- Clases y métodos abstractos en Java: Guía completa
- Dominando clases anidadas e internas en Java: Tipos, ejemplos y mejores prácticas
- Entendiendo las clases anidadas estáticas en Java: Uso, diferencias y ejemplos
- Dominando las clases internas anónimas en Java: Definición, sintaxis y ejemplos prácticos
- Patrón Singleton en Java explicado: Cómo implementarlo y usarlo de forma segura
- Dominando la Reflexión en Java: Inspeccionando clases, métodos y campos en tiempo de ejecución
- Dominando ObjectOutputStream de Java: Serialización, Métodos y Ejemplos Prácticos