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:
nombreedadaltura
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(sinthis) es el parámetro del método.this.nombrees 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
- Protección de datos: Los campos no pueden ser modificados directamente.
 - Control de acceso: Puedes definir reglas específicas para leer o escribir los valores.
 - 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 
nombreyedadson privados. - Los métodos 
getNombre,setNombre,getEdadysetEdadson 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 
thisse 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