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
(sinthis
) 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
- 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
nombre
yedad
son privados. - Los métodos
getNombre
,setNombre
,getEdad
ysetEdad
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