1. ¿Qué es un Setter?
Un setter es un método que sigue una convención de nomenclatura estándar:
setNombreDelAtributo(valor).
Se utiliza para modificar el valor de un atributo privado de una clase, respetando el
principio de encapsulación. Esto permite controlar cómo se asignan valores a los
atributos.
Ejemplo Básico de un Setter
java
Copiar código
public class Persona {
private String nombre;
// Setter para el atributo 'nombre'
public void setNombre(String nombre) {
[Link] = nombre;
}
}
Uso del Setter
java
Copiar código
Persona persona = new Persona();
[Link]("Carlos");
Aquí, el método setNombre asigna el valor "Carlos" al atributo privado nombre.
2. ¿Cómo se Implementan los Setters en Android?
En Android, los setters se usan en modelos de datos o en componentes de la interfaz de
usuario. Por ejemplo:
Ejemplo con un Modelo de Datos
java
Copiar código
public class Usuario {
private String username;
private String email;
// Setter para 'username'
public void setUsername(String username) {
[Link] = username;
}
// Setter para 'email'
public void setEmail(String email) {
[Link] = email;
}
}
Usando el Modelo en una Actividad
java
Copiar código
Usuario usuario = new Usuario();
[Link]("usuario123");
[Link]("usuario@[Link]");
Ejemplo con un Componente de Interfaz
En Android, algunos elementos de la interfaz gráfica tienen sus propios setters para
modificar propiedades.
Modificar el Texto de un TextView
java
Copiar código
TextView textView = findViewById([Link]);
[Link]("Bienvenido a la App"); // Setter para el texto
Aquí, el método setText cambia el texto mostrado en un TextView.
3. Validaciones en Setters
Los setters pueden incluir lógica adicional, como validaciones, antes de asignar un valor
al atributo.
Ejemplo: Validar un Nombre
java
Copiar código
public void setNombre(String nombre) {
if (nombre != null && ![Link]()) {
[Link] = nombre;
} else {
throw new IllegalArgumentException("El nombre no puede estar
vacío");
}
}
Uso
java
Copiar código
Persona persona = new Persona();
[Link](""); // Lanza una excepción
4. Uso Avanzado: Setters con Componentes de Interfaz
Sincronización de Datos entre UI y Modelo
En aplicaciones Android, los setters pueden ser útiles para sincronizar los datos de la
interfaz de usuario con un modelo de datos.
Ejemplo Completo
1. Modelo de Datos:
java
Copiar código
public class Usuario {
private String nombre;
private int edad;
public void setNombre(String nombre) {
[Link] = nombre;
}
public void setEdad(int edad) {
if (edad > 0) {
[Link] = edad;
}
}
}
2. Actividad con la Interfaz:
java
Copiar código
public class MainActivity extends AppCompatActivity {
private EditText edtNombre, edtEdad;
private Button btnGuardar;
private Usuario usuario;
@Override
protected void onCreate(Bundle savedInstanceState) {
[Link](savedInstanceState);
setContentView([Link].activity_main);
edtNombre = findViewById([Link]);
edtEdad = findViewById([Link]);
btnGuardar = findViewById([Link]);
usuario = new Usuario();
[Link](v -> {
[Link]([Link]().toString());
[Link]([Link]([Link]().toString()));
// Aquí los datos ya están sincronizados en el modelo
[Link](this, "Usuario guardado",
Toast.LENGTH_SHORT).show();
});
}
}
5. Setters con Herencia
Cuando trabajas con herencia, puedes sobrescribir setters en clases hijas para
personalizar la asignación de valores.
Ejemplo: Clases de Herencia
java
Copiar código
public class Empleado extends Persona {
private double salario;
public void setSalario(double salario) {
if (salario > 0) {
[Link] = salario;
}
}
}
6. Generación Automática de Setters en Eclipse
Eclipse permite generar automáticamente getters y setters:
1. Haz clic derecho sobre la clase.
2. Selecciona Source > Generate Getters and Setters.
3. Elige los atributos y haz clic en OK.
Esto genera los métodos con la nomenclatura estándar.
7. Setters en Librerías de Android
Algunas librerías y frameworks como Data Binding o Room en Android también
dependen de getters y setters.
Ejemplo con Data Binding
1. Modelo de Datos:
java
Copiar código
public class Usuario {
private String nombre;
public void setNombre(String nombre) {
[Link] = nombre;
}
public String getNombre() {
return nombre;
}
}
2. Sincronización en el XML:
xml
Copiar código
<TextView
android:text="@{[Link]}" />
Errores Comunes con Setters
1. Olvidar Validaciones:
Permitir datos inválidos que pueden causar errores en la lógica.
2. No Usar Encapsulación:
Usar atributos públicos en lugar de getters y setters, rompiendo el principio de
encapsulación.
Resumen
• Los setters son métodos que permiten establecer valores de atributos privados,
asegurando encapsulación.
• En Android, se usan tanto en modelos de datos como en componentes de UI
(setText, setVisibility, etc.).
• Es buena práctica incluir validaciones en los setters para evitar datos
inconsistentes.
• Herramientas como Eclipse o Android Studio facilitan su generación
automática.