Café y Código

9. Clases, Atributos y Constructores (POO)

1. Estructura de Atributos y Encapsulamiento

En Java, una Clase es la plantilla base para fabricar objetos. Los Atributos representan el estado o datos del objeto y deben declararse con el nivel de acceso private para aplicar el principio de encapsulamiento.

Usuario.java (Atributos)
JAVA
1public class Usuario {
2 // Atributos privados (Estado del objeto)
3 private String nombre;
4 private int edad;
5 private String email;
6}

2. Constructores sin Parámetros, con Parámetros y Sobrecarga

Un Constructor es un método especial que tiene exactamente el mismo nombre de la clase y no retorna ningún valor. Se ejecuta automáticamente al instanciar la clase con la palabra reservada new.

La Sobrecarga de Constructores (Overloading) nos permite definir múltiples constructores dentro de la misma clase, diferenciados por la cantidad o tipo de sus parámetros.

Usuario.java (Sobrecarga de Constructores)
JAVA
1public class Usuario {
2 private String nombre;
3 private int edad;
4
5 // 1. Constructor sin parámetros (Por defecto)
6 public Usuario() {
7 this.nombre = "Sin nombre";
8 this.edad = 0;
9 }
10
11 // 2. Constructor con parámetros (Sobrecargado)
12 public Usuario(String nombre, int edad) {
13 this.nombre = nombre;
14 this.edad = edad;
15 }
16}

3. Métodos Getters y Setters

Para acceder y modificar los atributos privados desde fuera de la clase de manera controlada y segura, utilizamos los métodos Getters (Lectura) y Setters (Escritura):

Usuario.java (Getters y Setters)
JAVA
1// Getter para obtener el nombre
2public String getNombre() {
3 return this.nombre;
4}
5
6// Setter para modificar el nombre con validación opcional
7public void setNombre(String nombre) {
8 if (nombre != null && !nombre.isEmpty()) {
9 this.nombre = nombre;
10 }
11}
12
13// Getter y Setter para edad
14public int getEdad() {
15 return this.edad;
16}
17
18public void setEdad(int edad) {
19 if (edad >= 0) {
20 this.edad = edad;
21 }
22}

4. El Método toString() e Impresión en Consola con System.out.println

En Java, todas las clases heredan de la clase base Object, la cual incluye el método toString(). Sobrescribir este método con @Override nos permite devolver una representación textual limpia del objeto al ejecutar System.out.println().

Main.java (toString y System.out.println)
JAVA
1public class Main {
2 public static void main(String[] args) {
3 // Uso del constructor sobrecargado con parámetros
4 Usuario u1 = new Usuario("Carlos", 25);
5
6 // Uso del constructor sin parámetros
7 Usuario u2 = new Usuario();
8
9 // Modificando atributos a través de Setters
10 u2.setNombre("Ana");
11 u2.setEdad(30);
12
13 // Impresión en consola usando System.out.println y toString()
14 System.out.println(u1); // Llama automáticamente a u1.toString()
15 System.out.println("Detalle de U2: " + u2.toString());
16 }
17}
18
19// Dentro de la clase Usuario:
20@Override
21public String toString() {
22 return "Usuario { nombre='" + this.nombre + "', edad=" + this.edad + " }";
23}

Ponte a prueba

Pon a prueba tus conocimientos sobre clases, atributos, constructores sobrecargados y getters/setters.

Dato curioso: JDK 1.0 en 1996; James Gosling y Sun Microsystems. Wikipedia

Ko-fi
Donaciones
Apoyá cafeycodigo con un café en Ko-fi. Colaboradores: insignia, muro y zona exclusiva.