En C#, puede usar las propiedades para hacer que un campo de datos sea de acceso público (lo que permite al usuario acceder directamente a él) y aún así conservar la capacidad de validar datos en los campos a los que se accede directamente. Java tiene algo similar? Por ejemplo, supongamos que existe una clase C# con la siguiente aplicación (ver más abajo):¿Java tiene "propiedades" que funcionan de la misma manera que las propiedades funcionan en C#?
public class newInt{
public newInt(){...}
public int x{
get{ return this.x }
set{ this.x = isValid(value) }
}
}
private static int isValid(int value){...}
Esta definición de la clase permite al usuario "naturalmente" utilizar el campo de datos 'x' cuando se recuperan los valores de la misma y asignándole valores A continuación se muestra cómo se usaría en main.
public class Test{
public static void main(String[] args){
newInt a = new newInt();
a.x = 50;
int b = a.x;
}
}
La pregunta es ... ¿puede Java hacer esto también? si es así, ¿cómo se llama?
[lombok] (http://projectlombok.org/) podría ayudarlo de alguna manera, aunque no la sintaxis de la propiedad, hace que tratar con getters/setters sea mucho más fácil. – Zabba