
Seja bem vindo a primeira aula desse curso de Orientação a Objetos em ABAP!
Nessa primeira aula, iremos ver um pequeno resumo da história da Orientação a Objetos desde sua criação, modo de enxergar um programa/sistema, até suas diferenças para com a Programação Estruturada.
Essa será uma aula mais conceitual e por isso não teremos nenhuma aplicação prática. Mas para toda uma boa prática, sempre é necessário uma aplicação teórica.
Boa aula!
Nesta aula, iremos ver um pouco da história do ABAP e a chegada do paradigma de Programação Orientada a Objetos dentro de sua estrutura como linguagem de programação.
Também iremos ver um exemplo bem básico de um programa "Olá Mundo" no contexto de Orientação a Objetos com um De-Para de como o mesmo poderia ser escrito de forma Estruturada e como poderia ser escrito Orientado a Objetos.
Boa aula!
Nesta aula, iremos ver como identificar objetos do mundo real com suas características e ações. Desta forma, poderemos perceber a importância de se fazer uma boa concepção de um determinado problema antes de fazermos qualquer codificação.
Esta aula tem um objetivo mais prático, a teoria será feita na prática.
Boa aula!
Nesta aula, iremos transformar os objetos com suas características e ações, identificados na aula passada, em um desenho de diagrama UML (Unified Modeling Language), linguagem de modelagem muito utilizada para visualizarmos programas sistemas que serão desenvolvidos com o paradigma de Orientação a Objetos.
Veremos também alguns programas de diagramação para podermos utilizar nos nossos exercícios e projetos futuros.
Boa aula!
Nesta quinta aula, iremos aprender a relacionar os objetos diagramados na aula passada. Os relacionamentos nos permite identificar a frequência que um objeto está presente dentre outro objeto e desta forma, poderemos codificar de forma mais precisa nossas classes e objetos posteriormente.
Boa aula!
Nesta aula, iremos finalmente colocar a "mão na massa" e codificar nossas primeiras classes no ABAP usando o paradigma POO.
Perceba, durante a codificação, a diferença de se codificar Orientado a Objetos e Estruturado.
Boa aula!
Nesta aula, iremos codificar os relacionamentos identificados no momento da diagramação das classes. Iremos perceber que esse ato e exercício de relacionar os objetos é algo relativamente simples e que faz toda a diferença na amarração dos objetos durante todo o desenvolvimento.
Boa aula!
Nesta aula, iremos ver como podemos otimizar o editor ABAP para nossos desenvolvimentos futuros.
Essas otimizações podem ser feitas tanto para desenvolvimentos Estruturados como para Orientado a Objetos.
Boa aula!
Nesta aula e primeira desta nova sessão, iremos começar a trabalhar com as classes criadas.
Aprenderemos a criar objetos (instâncias) a partir de nossas classes codificadas.
Veremos duas sintaxes existentes para geração de objetos baseado na versão do SAP Netweaver. E também, aprenderemos como verificar se uma variável declarada a partir da classe está instanciada, ou seja, se o objeto para aquela variável foi gerado ou não.
Boa aula!
Nesta aula, iremos aprender como declarar atributos e métodos estáticos além dos atributos e métodos que vinhamos declarando até agora durante as aulas.
Veremos como declarar a implementação dos métodos estáticos e aprenderemos uma dica sobre nomenclatura para esses tipos de métodos e atributos.
Boa aula!
Nesta aula, iremos entender melhor sobre construtores, ou melhor, métodos com nome reservadamente particulares a criação de um objeto dentro de nosso programa.
Também veremos a diferença de um construtor de instância e um construtor de classe.
Boa aula!
Nesta aula, iremos aprender como acessar métodos e atributos de instância e de classe (estáticos). O acesso aos atributos e métodos são necessários para interação com as classes modeladas e posteriormente as instâncias geradas, alterando assim, seu comportamento e estado.
Quando acessamos um método, estamos acessando um Comportamento do método e assim, fazendo com que o mesmo execute ações para que acessar um atributo alterando então seu Estado.
Boa aula!
Nesta aula, iremos ver algumas particularidades sobre métodos dentro do ABAP OO, aprendendo melhor sobre os parâmetros que podemos ter dentro do mesmo.
Lembrando que os parâmetros de um método também são conhecidos como Assinatura do método, ou seja, para eu executar um método eu preciso assinar o mesmo passando os parâmetros necessários para sua execução.
Métodos, como vistos até o momento, são as ações que um objeto ou classe podem ter e moldam o Comportamento dos mesmos. Através deste Comportamento, alteraremos (ou não) seu Estado.
Nesta aula, aprendemos melhor sobre como diferenciar a referenciação de um atributo do meu objeto para com uma variável de classe com o mesmo nome. Iremos conhecer o comando ME, o qual, referencia a minha própria instância dentro de um método do meu objeto durante a execução.
Boa aula!
Nesta aula, iremos ver como limpar objetos da memória dentro de um programa e como limpar sua referência.
Iremos também ver o método Destructor, o qual, é o responsável pela execução desta ação de "destruir" um objeto.
Boa aula!
Nesta aula, iremos dar início aos pilares da Orientação a Objetos começando a falar pelo pilar mais conceitual de todos os quatro pilares que iremos ver e falar durante o curso: A Abstração.
Abstração é o conceito de você abstrair as informações do mundo real e transformar isso em linhas de código através de suas classes e objetos. Ela permite que nós moldamos nossos objetos para servir seu propósito único dentro do meu sistema/programa e executar apenas aquilo que lhe é delegado.
Boa aula!
Nesta aula, iremos começar a falar sobre um novo pilar dentro da Orientação a Objetos.
Encapsulamento é o conceito de proteger seus atributos e até mesmo ações. Mas como posso fazer isso? O que significa "proteger meus atributos"?
Aprenda esse conceito de forma prática e simples!
Boa aula!
Nesta aula, iremos falar melhor sobre as visibilidades, principal conceito dentro de encapsulamento.
A visibilidade dos atributos e métodos dentro da Orientação a Objetos são capazes de modificar completamente o comportamento dos meus objetos durante a codificação. Mas como isso pode ser feito?
Qual o ganho de eu ter várias visibilidades para meus métodos e atributos?
Boa aula!
Nesta aula, iremos falar sobre métodos que possuem a única responsabilidade de alterar por completo o estado dos meus objetos ou classes. Iremos falar sobre métodos assessores e modificadores de um objeto e entender porque o nome dos mesmos são conhecidos como Getters e Setters.
Boa aula!
Nesta aula, iremos continuar aprendendo sobre métodos de acesso e modificação de objetos, porém, utilizando um conceito de tipos criados localmente dentro do seu programa.
Também entenderemos a diferença entre um tipo criado localmente e um tipo criado dentro do Dicionário de Dados (transação SE11) no SAP e como essa diferença afeta em sua utilização para com a assinatura de um método.
Boa aula!
Nesta aula, iremos falar sobre como encapsular a criação de um objeto dentro da própria classe. Encapsular a criação de instância me proporciona qual vantagem?
Como posso fazer com que um objeto seja criado apenas dentro da própria classe?
Esse conceito pode proporcionar várias vantagens, como: simplificar a criação de uma instância na inicialização de objetos.
Boa aula!
Nesta aula, iremos falar sobre concessões de permissões de uma classe para outra através do conceito de classes amigas.
Por que uma classe concederia essa permissão? Qual o ganho de conceder permissões para uma classe aos atributos e métodos privados de outra?
Você poderá ver dois casos interessantes que esse conceito pode ser utilizado e ao mesmo tempo a opinião do professor do melhor caso.
Boa aula!
Nesta aula, iremos falar sobre atributos, os quais, podem ser acessados de forma pública fora da classe, porém, não é possível alterar o valor do mesmo. Por que existe isso? Qual o ganho para isso?
Entenda que podemos ter atributos públicos de forma que não deixaremos de usar o pilar de encapsulamento na Orientação a Objetos durante nossa codificação no ABAP.
Boa aula!
Nesta aula, iniciando uma nova sessão. Começaremos a falar de um outro pilar da Orientação a Objetos chamado de Herança. A herança tem como principal função herdar características e comportamentos já presentes em uma classe/objeto e agregar novas funcionalidades e características reutilizando aquilo que foi herdado.
A complexidade dada para esse pilar se dá devido ao nível de abstração que é necessário para definir quando teremos uma classe que será caracterizada como pai e quando teremos uma classe que herdará as características da classe pai.
Boa aula!
Nesta aula, iremos falar sobre classes que não podem possuir instâncias a partir delas. Falaremos sobre classes abstratas.
Essas classes possuem a característica de conter um nível mais genérico que uma classe/objeto poderá possuir dentro de nossas aplicações, fornecendo assim, alguns comportamentos e características genéricos e que não precisam ser criados em todas as classes que criarmos dentro de nossa aplicação.
Boa aula!
Nesta aula, iremos falar melhor sobre a herança para com os métodos. Iremos entender como herdar métodos e reutilizar um trecho de código já implementando em um método de uma classe pai.
Também será abordado a redefinição de métodos comuns e métodos construtores e entender a diferença na herança nesses dois métodos, aonde, as assinaturas poderão ser alteradas.
Boa aula!
Nesta aula, iremos falar sobre classes e métodos, os quais, dentro do nível de abstração, alcançaram o nível máximo da mesma e se tornaram não mais possíveis de serem herdados. Falaremos sobre classes e métodos finais.
Entenderemos o que esse conceito significa dentro do pilar de Herança na Orientação a Objetos e também aprenderemos quando não utilizar esse conceito.
Boa aula!
Nesta aula, daremos início ao último e não menos importante pilar da Orientação a Objetos trabalhados neste curso: Polimorfismo.
Aprenderemos seu conceito de forma prática e simples para entender o porquê da importância que se trabalhar com o polimorfismo, torna nossas aplicações tão robustas e práticas para serem ampliadas ou sofrer manutenções.
A complexidade a partir deste momento da Orientação a Objetos é dada devido à possibilidade de podermos enxergar um objeto a partir de diversos ângulos dentro da nossa aplicação: uma vez que um objeto herde de outro e esse também pode ter sido herdado, criamos uma forma de enxergar nossos objetos de forma cada vez mais genérica dentro de nossas aplicações.
Boa aula!
Nesta aula, iremos entender como navegar dentro as visibilidades do objeto através de sua árvore de herança e enxergamos um objeto de sua forma mais genérica, ou seja, um objeto é trabalhado dentro de nossa aplicação com uma variável que possui declaração da classe mais genérica desse objeto (classe herdada).
Quando temos essa visibilidade mais abrangente, ou seja, vemos um objeto de sua forma mais genérica. Ao fazer essa atribuição temos o que chamamos de Upcast ou como a SAP prefere chamar de Narrowing Cast.
Boa aula!
Nesta aula, iremos aprender o caminho inverso do Upcast, ou seja, temos uma objeto visto de uma forma mais genérica e queremos trabalhar com o objeto em sua forma mais específica, descendo a árvore da herança: da forma mais genérica para a mais específica.
Quando temos esse tipo de atribuição, chamamos de Downcast ou como a SAP prefere intitular de Widening Cast: uma variável possui a referência para um tipo genérico e queremos atribuir a mesma para uma outra variável de um tipo mais específico.
Entenderemos a técnica que devemos utilizar no momento desta atribuição e como evitar erros de atribuição para não termos o famigerado DUMP dentro de nossas aplicações.
Boa aula!
Nesta aula, entenderemos os tipos de Polimorfismos existentes e entenderemos como alguns não se aplicam à Orientação a Objetos dentro do ABAP.
Aprenderemos melhor sobre o polimorfismo mais específico em métodos e revisitar alguns conceitos já aprendidos sobre métodos aqui dentro do próprio curso.
Boa aula!
Nesta aula, iniciaremos uma nova sessão aonde falaremos de Interfaces e quais os seus propósitos dentro da Orientação a Objetos.
Entenderemos a ideia por trás desse conceito e aprendemos como declarar uma interface dentro do ABAP e a convenção de nomes para as mesmas.
Boa aula!
Nesta aula, aprenderemos como implementar nossa(s) interface(s) após a definição das mesmas.
Entenderemos como o nome dos métodos são dados devido os mesmos terem sido providos de uma interface e não de uma classe herdada.
Também veremos uma opinião do professor para com implementação de interfaces e como delegar a implementação de alguns métodos para classes filhas das classes que estão implementando uma interface.
Boa aula!
Nesta aula, iremos aprender como renomear métodos, atributos, tipos e principalmente métodos e atributos providos de uma interface.
Entenderemos a vantagem de se utilizar a técnica de criar "apelidos" e como alterar a visibilidade dos mesmos dentro de uma classe.
Boa aula!
Nesta aula, iremos aprender como utilizar interfaces para serem um conjunto de tipos e constantes para nossas aplicações de dados mais abstratos e simples possíveis: aprendemos a criar Enumerators (Enumeradores).
Um Enumerador, apesar de o nome já o definir, pode definir tipos muito além de apenas constantes inteiras e criar um grande conjunta de tipos e definições que poderão ser utilizados em nossas aplicações Orientadas a Objetos.
Boa aula!
Nesta aula, iniciaremos uma nova sessão do nosso curso aonde estaremos falando sobre Eventos.
Eventos são mensagens enviadas por nossos objetos, os quais, podem ou não ser captados por outros objetos ou até mesmo pelo próprio objeto.
Boa aula!
Nesta aula, iremos aprender a como declarar um evento: criar e preparar sua assinatura para que o mesmo seja disparado.
E também, aprenderemos como a disparar um evento.
Um evento quando disparado não precisa ter nenhum método que esteja preparado para ouvir o mesmo, ou seja, ao disparar um evento, nenhum outro objeto precisará estar preparado para receber a mensagem disparada.
Boa aula!
Nesta aula, iremos como implementar um evento, escolhendo quais parâmetros da assinatura do mesmo queremos receber e posteriormente como assinar o evento para ouvir a mensagem que foi disparada.
Essa aula prática irá mostrar uma ideia muito interessante para trabalhar com objetos trocando mensagens entre os mesmos sem existir um relacionamento concreto em si.
Boa aula!
Nesta aula, aprenderemos que apenas limpar uma referência de um objeto que assinou um evento para ouvir o mesmo, não deixará de ouvir esse vento mesmo com sua referência perdida na memória do programa.
Como podemos fazer para que um objeto que escuta um evento e sua instância realmente deixem de existir?
Boa aula!
Nesta aula e primeira desta nova sessão, estaremos tendo o primeiro encontro com o Class Builder (transação SE24), a qual, armazena as classes denominadas como Globais dentro do sistema do SAP ECC.
Com o Class Builder, todas as classes que forem criadas e já existirem na mesma, podem ser utilizados dentro de qualquer programa/aplicação criadas e precisem utilizar essas classes. A vantagem disso é padronizar todo o funcionamento de todos os programas que usem essas classes, como se fossem funções.
Boa aula!
Nesta aula, iremos aprender como criar uma classe no Class Builder e aprender um pouco melhor como organizar nossos desenvolvimentos em pacotes de desenvolvimento, transformando assim, nossos desenvolvimentos mais próximos de desenvolvimentos realizados com linguagens que possuem o paradigma de orientação a objetos mais difundido.
Boa aula!
Nesta aula, falaremos especificamente de construtores de Instância e Classe dentro do Class Builder. Veremos que não podemos simplesmente criar o método com o nome reservado e sim, gerar os mesmos através da própria ferramenta.
Boa aula!
Nesta aula, iremos aprender como declarar atributos, métodos, assinaturas, eventos e apelidos dentro do Class Builder.
Será possível perceber grandes diferenças no momento dessas declarações e aprender todas as possibilidades que temos durante as mesmas.
Boa aula!
Nesta aula, iremos falar mais especificamente sobre a herança dentro do Class Builder e entender como uma classe que herda de outra classe tem sua estrutura alterada no Class Builder.
Boa aula!
Nesta aula, iremos falar mais especificamente sobre métodos dentro do Class Builder.
Aprenderemos como configurar todas as opções disponíveis para um método dentro da transação e sua assinatura.
Boa aula!
Nesta aula, assim como falamos de métodos, iremos falar mais especificamente sobre atributos dentro do Class Builder.
Aprenderemos como declarar atributos para uma classe com a transação e como configurar mais detalhadamente um atributo além da declaração padrão que o Class Builder nos oferece.
Boa aula!
Nesta aula, iremos aprender como importar todo nosso desenvolvimento de classes criadas dentro de um programa Report, Module Pool, Grupo de Funções, etc. para o Class Builder tornando assim, nossas classes locais em Classes Globais.
Essa é uma prática interessante quando vemos que uma solução poderá ser utilizada em caráter global dentro da aplicação que estamos trabalhando.
Boa aula!
Esse curso foi criado com o intuito de lhe ensinar de maneira prática todos os conceitos básicos da Orientação a Objetos e como as mesmas funcionam dentro do ABAP. O curso possui uma carga horário não muito grande, porém, com aulas práticas e rápidas, o mesmo traz cada conceito de maneira individual para que, caso você necessite, você possa revisitar um conceito ou conteúdo em específico sem necessitar assistir uma aula gigante.
Você aprenderá:
A finalmente a programar Orientado a Objetos e o melhor, dentro do SAP;
Otimizar seu desenvolvimento Orientado a Objetos no ABAP e até mesmo seus desenvolvimentos estruturados;
O curso conta com um fórum de perguntas que o professor irá responder o mais rápido possível. Novos conteúdos sempre poderão ser adicionados, assim como o conteúdo já existente, poderá sempre ser atualizado.