Una taza de café construida con las letras de JAVA

Atributos y Métodos en Java: da sentido a tus clases

Guía de programación en Java > Atributos y métodos

Introducción

En esta sesión aprenderemos sobre dos conceptos fundamentales de la Programación Orientada a Objetos (POO): los campos y los métodos. También exploraremos el uso de la palabra reservada this y el concepto de encapsulación. La encapsulación es una práctica esencial para proteger y organizar los datos dentro de nuestras clases.


¿Qué son los Atributos y los Métodos?

Atributos o campos

Los atributos (también conocidos como campos) son las variables que pertenecen a una clase o a un objeto. Representan las características o propiedades que describen al objeto.

Ejemplo:

En una clase Persona, los campos podrían ser:

  • nombre
  • edad
  • altura
class Persona {
    String nombre;
    int edad;
    double altura;
}

Métodos

Los métodos son las funciones o acciones que los objetos de una clase pueden realizar. Representan el comportamiento del objeto.

Ejemplo:

En la clase Persona, los métodos podrían ser:

  • saludar(): Imprime un saludo.
  • cumplirAnios(): Incrementa la edad en 1.
class Persona {
    String nombre;
    int edad;
    double altura;

    void saludar() {
        System.out.println("¡Hola, soy " + nombre + "!");
    }

    void cumplirAnios() {
        edad += 1;
    }
}


Uso de this

La palabra clave this en Java se utiliza dentro de una clase para referirse al objeto actual. Es especialmente útil cuando los nombres de las variables locales y los campos de la clase son iguales.

Ejemplo:

class Persona {
    String nombre;

    void establecerNombre(String nombre) {
        this.nombre = nombre; // `this.nombre` se refiere al campo de la clase.
    }
}

En este ejemplo:

  • nombre (sin this) es el parámetro del método.
  • this.nombre es el campo de la clase.

Encapsulación

La encapsulación es una práctica de POO que consiste en restringir el acceso directo a los campos de una clase. En lugar de acceder directamente a ellos, se utilizan métodos específicos llamados getters y setters.

Modificadores de Acceso

  • private: El campo solo es accesible dentro de la misma clase.
  • public: El campo o método es accesible desde cualquier lugar.

Ventajas de la Encapsulación

  1. Protección de datos: Los campos no pueden ser modificados directamente.
  2. Control de acceso: Puedes definir reglas específicas para leer o escribir los valores.
  3. Facilidad de mantenimiento: Cambiar la implementación interna no afecta al resto del programa.

Ejemplo:

class Persona {
    private String nombre;
    private int edad;

    // Getter para nombre
    public String getNombre() {
        return nombre;
    }

    // Setter para nombre
    public void setNombre(String nombre) {
        this.nombre = nombre;
    }

    // Getter para edad
    public int getEdad() {
        return edad;
    }

    // Setter para edad
    public void setEdad(int edad) {
        if (edad >= 0) { // Validación de datos
            this.edad = edad;
        }
    }
}

En este ejemplo:

  • Los atributos nombre y edad son privados.
  • Los métodos getNombre, setNombre, getEdad y setEdad son públicos y permiten acceder o modificar los campos de forma controlada.

Ejemplo Completo

Supongamos que queremos modelar una clase Coche.

Código:

class Coche {
    private String marca;
    private int velocidad;

    // Constructor
    public Coche(String marca) {
        this.marca = marca;
        this.velocidad = 0; // Velocidad inicial
    }

    // Getter para marca
    public String getMarca() {
        return marca;
    }

    // Método para acelerar
    public void acelerar(int incremento) {
        velocidad += incremento;
        System.out.println("El coche ha acelerado. Velocidad actual: " + velocidad + " km/h");
    }

    // Método para frenar
    public void frenar(int decremento) {
        velocidad -= decremento;
        if (velocidad < 0) velocidad = 0;
        System.out.println("El coche ha frenado. Velocidad actual: " + velocidad + " km/h");
    }
}

public class Main {
    public static void main(String[] args) {
        Coche miCoche = new Coche("Toyota");
        System.out.println("Marca: " + miCoche.getMarca());
        miCoche.acelerar(50);
        miCoche.frenar(20);
    }
}

Salida:

Marca: Toyota
El coche ha acelerado. Velocidad actual: 50 km/h
El coche ha frenado. Velocidad actual: 30 km/h


Resumen

  • Los atributos representan las propiedades de una clase.
  • Los métodos definen las acciones o comportamientos de los objetos.
  • La palabra clave this se utiliza para referirse al objeto actual.
  • La encapsulación protege los datos de los objetos y los hace accesibles mediante métodos públicos.

Tarea: Crea una clase Libro con campos privados como titulo, autor y paginas. Implementa métodos get y set para cada campo y añade un método para mostrar la información del libro.

¡Continúa practicando para dominar estos conceptos esenciales! 🚀


Deja una respuesta

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

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.