Página 1 de 1
create class
Enviado: 30 Mai 2013 21:00
por maaupe
Boa noite a todos.
como eu crio esta classe :
gostaria de saber com coloco os metodos get e set.
e se tiver um atributo que e uma coleção por exemplo como eu declaro este atributo
muitas duvidas !!!! no help nao eocntei a definição do create class. Outr coisa tem heranca visual
Obrigado a todos
create class
Enviado: 30 Mai 2013 23:05
por alxsts
Olá!
Seja bem-vindo ao fórum!
O exemplo abaixo foi extraído do xHarbour Language Reference Guide. Procure no Google que você encontrará (em inglês).
Código: Selecionar todos
Example
// The example implements a class whose instances have three states
// represented as numeric -1, 0 and 1. The state can be changed by
// assigning values of different data types.
#include "Hbclass.ch"
#include "Error.ch"
PROCEDURE Main
LOCAL obj := ThreeState():new()
? obj:state // result: -1
obj:state := "ON"
? obj:state // result: 1
obj:state := "OFF"
? obj:state // result: 0
obj:state := "UNDEF"
? obj:state // result: -1
obj:state := .T.
? obj:state // result: 1
obj:state := NIL
? obj:state // result: -1
obj:state := 1
? obj:state // result: 1
obj:state := 3 // runtime error
RETURN
CLASS ThreeState // ===> Define a classe
PROTECTED:
DATA _value INIT -1
EXPORTED:
ACCESS state // ===> Get
ASSIGN state( x ) INLINE ::state( x ) // ===> Set
ENDCLASS
METHOD state( xState ) CLASS ThreeState // ===> Define um método
LOCAL lError := .F.
IF PCount() == 0
RETURN ::_value
ENDIF
IF Valtype( xState ) == "N"
IF xState IN { -1, 0, 1 }
::_value := xState
ELSE
lError := .T.
ENDIF
ELSEIF Valtype( xState ) == "C"
DO CASE
CASE Upper( xState ) == "ON"
::_value := 1
CASE Upper( xState ) == "OFF"
::_value := 0
CASE Upper( xState ) == "UNDEF"
::_value := -1
OTHERWISE
lError := .T.
ENDCASE
ELSEIF Valtype( xState ) == "L"
::_value := IIF( xState, 1, 0 )
ELSEIF Valtype( xState ) == "U"
::_value := -1
ELSE
lError := .T.
ENDIF
IF lError
RETURN ::error( "illegal data assigned", ;
::className(), "state" , ;
EG_ARG, {xState} )
ENDIF
RETURN ::_value
Espero que ajude. Utilize o recurso de busca do fórum e continue postando suas dúvidas.
create class
Enviado: 30 Mai 2013 23:07
por alxsts
Olá!
Faltou dizer que para atributos coleção, você poderá usar variáveis dos tipos Array ou Hash.