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.