Tener métodos de acceso es preferible a acceder a los campos directamente, porque controla cómo se accede a los campos (puede imponer la comprobación de datos, etc.) y se ajusta a las interfaces (las interfaces no pueden exigir la presencia de campos, sólo de métodos). X sería nulo si se llama a getX antes de una llamada a setX.