Ver Mensaje Individual
  #5 (permalink)  
Antiguo 08/11/2009, 15:00
Avatar de HackmanC
HackmanC
 
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 17 años
Puntos: 260
Sonrisa Respuesta: ¿hay propiedades en java? (propiedades de clase)

Hola,

Cita:
Iniciado por black_flowers Ver Mensaje
... ¿cómo podría definir entonces una variable privada mediante una propiedad? ...
La diferencia está basicamente en el lenguaje. La especificación de JavaBeans te dice que tienes que crear los getters y setters de una manera específica para que cumpla con la especificación. Aunque no es parte del lenguaje Java propiamente, al contrario que VB y C#. (Inclusive tienes que crear un constructor sin parámetros y el serial version etc.)

java.sun.com/javase/technologies/desktop/javabeans/index.jsp

Por ejemplo,

Código:
public class MyClass {
  private String name;
  public MyClass {
    super();
  }
  public String getName() {
    return this.name;
  }
  public void setName(String name) {
    this.name = name;
  }
}
Los getters y setters los usan los contenedores JavaBeans a traves de introspección de código, es decir, cuando creas un JPanel en NetBeans, y le creas propiedades públicas (personalizadas) esas deberían aparecen en la ventana de Properties, puesto NetBeans investigó dentro de la clase y encontró un get y un set con el mismo nombre.

En el caso de 'readonly' solamente le declaras el getters, etc. Los valores boolean se declaran con 'is' en lugar de 'get'. Lo mismo sucede con las páginas JSP, utilizan introspección para saber cual es el getter y setter.

Lo puedes comparar vagamente con los ActiveX (COM+ de Microsoft) en cierta forma (principalmente si los has trabajado en C++), el contenedor del ActiveX no sabe que propiedades tiene el control. Por medio de ciertas llamadas internas (lo que vendría siendo introspección en este caso), le pregunta que cosas soporta y y cuales no. (Como el caso de un ActiveX Flash dentro de una página de Internet).

Pero en este caso lo tienes que saber y aplicarlo, el compilador no va a decir nada si tu clase Java no cumple con los requerimientos de JavaBeans.

Saludos,