A partir da versão 17.2.1.3 o recurso de modificado de acesso está disponível no ADVPL.
É necessário utilizar este include atualizado: msobject.ch
O nível do modificador padrão é PUBLIC.
Para o *.tlpp o nível padrão é PRIVATE.
Os níveis de modificadores são:
NÍVEIS
PRIVATE
O método ou a propriedade estarão acessíveis apenas de dentro da classe.
PROTECTED
O método ou a propriedade estarão acessíveis apenas de dentro da classe e das classes herdadas dela.
PUBLIC
O método ou a propriedade estarão acessíveis de qualquer lugar.
Bloco de código
language
cpp
firstline
1
title
Exemplo
class EscopeMethod from LongClassName
private data oComp1
public data oComp2
protected data oComp3
data oComp4
public method new()
private method teste1()
public method teste2()
protected method teste3()
endclass
method new() class EscopeMethod
return self
method teste1() class EscopeMethod
conout("teste1")
return self
method teste2() class EscopeMethod
self:oComp1 := 1
self:oComp2 := 2
self:oComp3 := 3
self:teste1()
conout("teste2")
self:teste3()
return self
method teste3() class EscopeMethod
conout("teste3")
return self
user function escope
local myObj := EscopeMethod():New()
myObj:oComp2 := 2
conout("myObj:oComp2", myObj:oComp2)
/*myObj:oComp1 := 1
conout("myObj:oComp1", myObj:oComp1)*/ //não é possível descomentar esse trecho de código pois o atributo oComp1 é private e causará um erro de execução.
/*myObj:oComp3 := 3
conout("myObj:oComp3", myObj:oComp3)*/ //não é possível descomentar esse trecho de código pois o atributo oComp3 é protected e causará um erro de execução.
//myObj:teste1() - não é possível descomentar esse trecho de código pois o método teste1 é private e causará um erro de execução.
myObj:teste2()
//myObj:teste3() - não é possível descomentar esse trecho de código pois o método teste3 é protected e causará um erro de execução.
return