Página 1 de 1

create class

Enviado: 30 Mai 2013 21:00
por maaupe
Boa noite a todos.

como eu crio esta classe :

Código: Selecionar todos

create class cliente
data codigo 
data nome
data dtcad
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.