¿Qué es realmente un JavaBean? Explicación sencilla para principiantes
¡Hola a todos! Empecé a estudiar Java y constantemente me encuentro con el término "JavaBean". Creo entender que es una clase, pero cuando leo la documentación, habla de "componentes serializables con métodos getter/setter" y "contenedores de propiedades". Honestamente, suena como magia.
Tengo una clase simple para almacenar datos de usuario:
```java
public class User {
public String name;
public int age;
}
```
Puedo crear un objeto y acceder a los campos directamente. ¿Por qué debería escribir getters y setters? ¿Por qué implementar Serializable? ¿Y qué son esos "beans"?
He visto que en Java Enterprise Edition y Spring todos aman estos JavaBeans, pero no entiendo cuál es su ventaja. ¿Quizás es solo un concepto obsoleto? Explíquenme, por favor, en palabras simples qué es un JavaBean, para qué sirve, y si es obligatorio seguir todas las reglas si estoy escribiendo una aplicación normal, no un sistema corporativo.
Me interesa especialmente:
1. ¿Por qué los campos deben ser private?
2. ¿Para qué sirve el constructor?