Ao meu ver.. colocar __ para não ser visualizado na instancia não pode ser considerado private pois se o desenvolvedor souber o mesmo pode utilizala.
Vale lembra que se eu colocar o fonte da classe em uma apl ou no app o desenvolvedor pode ler... e se colocar numa apd ele não exporta Functional Class.
 
exemplo:
Functional Class: cTeste
 Description:
 Derived From
 Class Variables
 Instance Variables
  String: __Escondido
 Functions
 
Se na instancia eu colocar
Set oTeste.__Escondido = 'AAA'
o Valor e atribuido.
 
Um outro fato que gostaria de levantar na lista e sobre a implementação de Interface...
Por exemplo você pode criar uma interface para implementar uma classe ou mais classes sobrescrever seus metodos... ou criando metodos novos na interface... porem não a como você indicar a obrigatoriedade da implementação de um metodo existente na classe derivada classe.
 

Functional Class: cTeste
 Description:
 Derived From
 Class Variables
 Instance Variables
  String: __Escondido
 Functions
  Function: fOk
   Description:
   Returns
   Parameters
   Static Variables
   Local variables
   Actions
    Call SalMessageBox( 'Classe','Atenção', MB_Ok )
 

Interface: iImpTeste
 Description:
 Attributes
  GUID: {93AD99E3-66D5-45DB-90C5-D2ACBE650CF1}
  Help String:
  Help Context: 0
 Derived From
  Class: cTeste
 Class Variables
 Instance Variables
 Functions
   Function: fOk
   Description:
   Attributes
    Dispatch Number: 0
    Help String:
    Help Context: 0
   Returns
   Parameters
   Static Variables
   Local variables
   Actions
    Call SalMessageBox( 'Interface','Atenção', MB_Ok )
 
Na instancia.
Call iTeste.fOk(  )
Set iTeste.__Escondido = 'AAA'
 
Se comentarmos a função fOK da instacia vai voltar o da classe.

Estou gostando da discurção...
On 1/10/06, Gerson Barreto Neto <[EMAIL PROTECTED]> wrote:
 Caro Lairton,

     Gostei muito de suas abordagens, acredito que seria possível divulgar mais esses conceitos. Gostaria de levantar alguns pontos importantes; Esse atributo que você nos apresentou '__inCodigo' corresponde a um atributo privado 'private' nas linguagens O.O mais recentes, da mesma forma os demais conceitos. Para que ficasse mais entendível entre nos amantes da linguagem gupta, desejaria se possível você tentasse igualar os conceitos.

um abraço,

Gerson  Barreto Neto

----- Original Message -----
Sent: Monday, January 09, 2006 10:01 PM
Subject: Re: [sqlwin] Classes em Gupta

 
Olá Ivan,
 
Deixe-me tentar responder suas três perguntas. A princípio a resposta é sim para as três perguntas, como nenhuma das três é implementada de forma nativa na linguagem, deixe-me explicar como obter estes resultados:
 
1) Para fazer com que a instância (ou alguma outra classe 'abaixo') não tenha conhecimento da existência de um determinado atributo definido na classe coloque dois sublinhados antes do nome do atributo.
Instance Variables
    Number: __inCodigo
 
Dessa forma, a variável de instância __inCodigo não é mostrada nos assistentes de codificação, impedindo que o programador saiba que elas existem e que venha a utilizá-las. Porém, caso ele faça uso na instância de uma dessas variáveis ou funções, o SQLWindows permitirá normalmente que seja utilizada. Este bloqueio é apenas visual nos assistentes.
 
2) por padronização costumo ter um método em minhas classes tipo init( ) que eu sempre chamo inicialmente, antes de usar o objeto. Faço todas as minhas inicializações neste método. Talvez vc poderia fazer o mesmo.
 
3) Declare seus parâmetros como tipo Variant, pois neles pode passar qualquer tipo de dado sem problemas .... mas não pode ter número de parâmetros variáveis. Ou seja, se a função foi declarada como tendo 3 parâmetros e vc só utilizará um, precisa passar nulo nos demais.
 
 
Os recursos de orientação a objetos do SQLWindows não evoluem já há muitos anos, portanto, essas abordagens que vc citou e que são implementadas nativamente nas linguagens mais novas que o SQLWindows, como Java e Delphi e *.NET , são "implementadas no SQLWindows de modo que eu chamaria de "manual", pra ser brando :)
 
Se quiser saber mais sobre qualquer recurso ... sobre sua existência no SQLWindows e como implementar, pode perguntar.
 
abraços
Lairton.
 
 
Em 09/01/06, [EMAIL PROTECTED] <[EMAIL PROTECTED] > escreveu:




Pessoal,

Gostaria de obter algumas informações/dicas sobre programação orientada a
objetos no Gupta. Algum de vocês sabe se é possível:

- Declarar atributos "private" nas functional class onde somente ela
poderia visualizar diretamente o atributo
- Existe uma forma de se inicializar os atributos de uma classe no momento
em que ela é instanciada. Equivalente ao método construtor do Java
- É possível utilizar polimorfismo no Centura, ou então, o mesmo parâmetro
de um método pode receber objetos diferentes ?

Valeu,

Ivan Napolitano


==============================================
Lista de Centura SQLWindows
Administrador : [EMAIL PROTECTED]
[ http://www.centuraexplorer.com ]
Para sair desta lista mande mensagem para:
[EMAIL PROTECTED] sem nada no Subject e
com o comando a seguir no corpo da msg:
"unsubscribe sqlwin" (sem as aspas)
==============================================



--

Lairton N de Almeida Jr.
[EMAIL PROTECTED]

Responder a