Olá pessoal…
Na vídeo aula de hoje vou mostrar conceitos de Orientação à Objetos e como fazer uma classe e uma função utilizando a classe em AdvPL.
Fonte da classe:
//Bibliotecas
#Include "Protheus.ch"
/*/{Protheus.doc} zPessoa
Criação da classe Pessoa
@author Atilio
@since 13/12/2015
@version 1.0
@example
oObjeto := zPessoa():New()
/*/
Class zPessoa
//Atributos
Data cNome
Data nIdade
Data dNascimento
//Métodos
Method New() CONSTRUCTOR
Method MostraIdade()
EndClass
/*/{Protheus.doc} New
Método que cria a instância com a classe zPessoa
@author Atilio
@since 13/12/2015
@version 1.0
@param cNome, Caracter, Nome da Pessoa
@param dNascimento, Data, Data de Nascimento da Pessoa
@example
oObjeto := zPessoa():New("João", sToD("19800712"))
/*/
Method New(cNome, dNascimento) Class zPessoa
//Atribuindo valores nos atributos do objeto instanciado
::cNome := cNome
::dNascimento := dNascimento
::nIdade := fCalcIdade(dNascimento)
Return Self
/*/{Protheus.doc} MostraIdade
Método que mostra a idade da pessoa
@author Atilio
@since 13/12/2015
@version 1.0
@example
oObjeto:MostraIdade()
/*/
Method MostraIdade() Class zPessoa
Local cMsg := ""
//Criando e mostrando a mensagem
cMsg := "A <b>pessoa</b> "+::cNome+" tem "+cValToChar(::nIdade)+" anos!"
MsgInfo(cMsg, "Atenção")
Return
/*-------------------------------------------------*
| Função: fCalcIdade |
| Autor: Daniel Atilio |
| Data: 13/12/2015 |
| Descr.: Função que calcula a idade da Pessoa |
*-------------------------------------------------*/
Static Function fCalcIdade(dNascimento)
Local nIdade
//Chamando a função YearSub para subtrair os anos de uma data
nIdade := DateDiffYear(dDataBase, dNascimento)
Return nIdade
Fonte da função:
//Bibliotecas
#Include "Protheus.ch"
/*/{Protheus.doc} zCadPessoa
Função que testa a classe Pessoa
@author Atilio
@since 13/12/2015
@version 1.0
@example
u_zCadPessoa()
/*/
User Function zCadPessoa()
Local oPessoa
Local cNome := "José"
Local dNascimento := sToD("19850712")
//Instanciando o objeto através da classe Pessoa
oPessoa := zPessoa():New(cNome, dNascimento)
//Chamando um método da classe
oPessoa:MostraIdade()
Return
Se quiser fazer o download desses códigos ou do conteúdo mostrado na vídeo aula, acesse nosso GitHub pelo link github.com/dan-atilio/AdvPL (Exemplos > Vídeo Aulas > 015 – Orientação à Objetos).
Bom pessoal, por hoje é só.
Abraços e até a próxima.