ADVPL - Classe no PRW vs Classe no TLPP
Autor: Eurai Criado: 15/08/2021 Atualizado: 20/08/2021
Hoje trago um exemplo de classe no ADVPL, classes em ADVPL são simples, não possuem muitos recursos, podemos criar propridades com "DATA" e manipular elas nos methods com SELF:DATA / ::DATA.
ADVPL
#INCLUDE "TOTVS.CH" User Function UDCLASS() oUDCLASS := UDCLASS():New() oUDCLASS:Alert( 'Minha Mensagem' ) Return(Nil) /*/{Protheus.doc} UDCLASS Classe generica. Funções para usos diversos.. @type class @author Eurai Rapelli /*/ Class UDCLASS Method New() Constructor Method Alert( cMen, cTit ) EndClass /*/{Protheus.doc} New Metodo New @type method @author Eurai Rapelli /*/ Method New() Class UDCLASS Return( Self ) /*/{Protheus.doc} Alert Mostra mensagem @type method @author Eurai Rapelli /*/ Method Alert( cMen, cTit ) Class UDCLASS Default cMen := '' Default cTit := 'Universo do Desenvoledor' MsgAlert(cMen,cTit) Return( Nil )
TLPP
Na classe com TLPP foram adicionados novos recursos, recursos que nivelam com outras linguagens de programação. Alguns recursos adicionados foi a tipagem (TLPP), namespace, modificador de acesso a variável/method entre muitos outros recursos.
Abaixo, trago um exemplo com method public, private, protected e static
#INCLUDE "TOTVS.CH" User Function UDCLASSTLPP() oUDCLASSTLPP := UDCLASSTLPP():New() UDCLASSTLPP():updateStatic() oUDCLASSTLPP:Alert( 'Minha Mensagem' ) // oUDCLASSTLPP:updateLogGR() //Erro, pois é private Return(Nil) /*/{Protheus.doc} UDCLASSTLPP Classe generica. Funções para usos diversos.. @type class @author Eurai Rapelli /*/ Class UDCLASSTLPP Public Method New() Constructor Public Method Alert( cMen, cTit ) private Method updateLogGR() protected Method updateTable() static Method updateStatic() EndClass /*/{Protheus.doc} New Metodo New @type method @author Eurai Rapelli /*/ Method New() Class UDCLASSTLPP Return( Self ) /*/{Protheus.doc} Alert Mostra mensagem @type method @author Eurai Rapelli /*/ Method Alert( cMen, cTit ) Class UDCLASSTLPP Default cMen := '' Default cTit := 'Universo do Desenvolvedor' ::updateLogGR() ::updateTable() MsgAlert(cMen,cTit) Return( Nil ) /*/{Protheus.doc} updateLogGR Atualiza logs @type method @author Eurai Rapelli /*/ Method updateLogGR() Class UDCLASSTLPP conout('atualizando loggr') Return( Nil ) /*/{Protheus.doc} updateTable Atualiza logs @type method @author Eurai Rapelli /*/ Method updateTable() Class UDCLASSTLPP conout('atualizando updateTable') Return( Nil ) /*/{Protheus.doc} updateTable Atualiza logs @type method @author Eurai Rapelli /*/ Method updateStatic() Class UDCLASSTLPP conout('atualizando static logs') Return( Nil )
Gostou? Compartilhe com seus amigos e deixe um comentário! 😎
Um abraço, e até a próxima
Discussão (0)
Sem comentários ainda
Realize o LOGIN no site para poder comentar