Apúntate...


Consultas, desarrollo de programas y petición de presupuestos:

miércoles, 29 de agosto de 2012

Añadiendo Propiedades

Para añadir a la propiedades a una clase, usamos la orden "Property"

PROPERTY [ READ ] Identifier [ , Synonymous1 [ , Synonymous2 ... ] ] AS Datatype

Nota:
Read: añadiendo esta palabra, hará que la propiedad sea de solo lectura

Para manejar esta propiedad, se debe de crear una variable privada y dos procedimientos privados que nos van a permitir la lectura  (_get) y la asignación de valores (_read).

Veamos un ejemplo creando una propiedad llamada "Edad":

PROPERTY Edad AS integer 'Propiedad creada
PRIVATE $Edad AS integer 'variable privada
PRIVATE FUNCTION Edad_read() AS integer 'Devuelve el valor de Edad
RETURN $Edad
END
PRIVATE SUB Edad_write(Valor AS integer) ' Escribe el valor en la propiedad
$Edad = Valor
END

Nota:
Tener estos métodos (_write y _read) puede parecer equivalente a haber declarado el atributo como público (Public); sin embargo hay una pequeña diferencia que es muy importante:

  • Si hacemos el atributo público cualquiera funcion o subrutina puede modificar su valor sin verificar que el nuevo valor que se le asigne sea un valor apropiado; 
  • Por otro lado, un método para establecer el valor de la variable puede realizar la validación del dato que va a asignar al atributo y si no es un dato válido puede rechazarlo.
Por ejemplo, podemos añadir un comprobación cuando se vaya a asignar un valor a la propiedad Edad
Private Sub Edad_write(Valor As Integer)
'comprobamos si el "valor" es mayor que 0
If valor > 0 Then
'si el valor es mayor que 0, se le puede asignar
$Edad = Valor
Else
Message.Info("No se puede asignar un valor de edad inferior o igual que 0")
Endif
End


Para más información : http://gambaswiki.org/wiki/lang/propdecl?l=es

Programa que facilita la creación de propiedades de clases: Enlace de Descarga

3 comentarios:

  1. Consulta... ¿qué significa el signo $ al inicio de la variable? Gracias.

    ResponderEliminar
  2. Como no puedes usar el mismo nombre "edad" (el de la propiedad) en la variable privada, se usa el signo $ o también puedes usar otro nombre "hedad", por ejemplo.
    Lo importante es saber en la clase vamos a usar la variable privada "$edad" o "hedad" y externamente a la clase solo se usa (y se tiene acceso) a la propiedad "Edad".

    ResponderEliminar

A falta de donativos... un poco de publicidad