Ajude o site desativando o bloqueador de anúncio

ASSINE A NEWSLETTER

Cadastrando...
PIX uDesenv pix deposito

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