Foros aprenderaprogramar.com

Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: Notanumber en 06 de Abril 2014, 02:27

Título: Necesidad de getters java
Publicado por: Notanumber en 06 de Abril 2014, 02:27
Buenas
¿Por que en javase necesitan gettes pudiendo poner Nombredelobjeto.variablequenecesito?
Ejemplo, la clase Persona tiene como campos nombre y edad.
para obtener el nombre tengo un public String getNombre(){return nombre;}
para que necesito este metodo? si en otra clase necesito la variable nombre podria simplemente realizar:
Persona persona1 = new Persona("Manuel", 12);
 persona1.nombre no?

Muchas gracias
Título: Re:Necesidad de getters java
Publicado por: Alex Rodríguez en 06 de Abril 2014, 10:12
No, persona1.nombre no te devuelve el atributo nombre a no ser que declares el atributo como public en vez de como private. Los atributos en java normalmente se declaran como private para evitar que se pueda tener acceso a ellos usando la notación que tú indicas. Al declarar el atributo como private, se puede evitar dar acceso al atributo excepto si el programador así lo quiere introduciendo un método get. Pero es posible que no quiera darle acceso, en ese caso no hay método get y no se puede acceder al atributo.

Podrías preguntarte: ¿por qué no declarar los atributos como públicos y así me ahorro tener que introducir métodos get? Tener acceso público a los atributos se considera una mala práctica de programación por introducir posibilidades de manipulación y efectos colaterales fuera del control "certero" del programa, por eso no se recomienda (y no se hace excepto que se sepa muy bien lo que se está haciendo). Saludos.