POO – Introdução

Programação Oriendada a objetoNo início de 2014, ministrei a disciplina de programação comercial em um curso a distância ofertado pela ETAPI (Escola Técnica Aberta do Piauí). A disciplina consiste em utilizar a ferramenta Lazarus para criar aplicações as quais se comuniquem e persistam dados através de um SGBD (Sistema Gerenciador de Banco de Dados). Aproveitando a oportunidade disponibilizei as referidas aulas no meu canal do youtube. Além dessa experiência em produzir conteúdo para ensino a distância, possuo também uma conta pessoal no slideshare onde disponibilizo apresentações. Nas duas mídias sociais citadas acima o maior número de acessos é destinado ao conteúdo em formato de aula (apresentações e vídeos). Junto aos acessos também recebi vários feedbacks positivos os quais me motivaram produzir mais conteúdo. Tendo em vista que foi bastante útil aos interessados resolvi organizar e disponibilizar um curso de Programação Orientada a Objeto (POO). Essa postagem é a primeira de uma série que irá abordar o tema POO. As postagens serão acompanhadas dos slides e vídeo aula. Sem mais delongas vamos colocar a mão na massa!

Objetolândia Seja bem vindo a Objetolândia! Vamos embarcar nesse mundo e aprender os conceitos de orientação a objeto. Na parte prática será utilizado a linguagem de programação Java. Antes de começar algumas dicas para otimizar o aprendizado:

  • Tenha calma! Quanto mais entender, menos terá que memorizar;
  • Faça exercícios. Faça suas próprias anotações;
  • Beba água, muita água!;
  • Fale sobre o assunto em voz alta;
  • Escute seu cérebro;
  • Sinta algo!;
  • Digite e execute seu código.

Quem é esse tal de Java? É uma linguagem de programação orientada a objeto. A mesma será utilizada durante as próximas postagens para por em prática os conceitos estudados. Java é: (i) Familiar pois possuí uma sintaxe parecida com outras linguagens de programação; (ii) Independente de plataforma; (iii) Segura, ou seja, possui vários mecanismos para garantir a segurança e (iv) Possui uma forte coleção de APIs (e bibliotecas).

A linguagem de programação Java, com o objetivo de ser independente de plataforma, utiliza Máquina Virtual (JVM). Como o próprio nome diz a JVM reproduz as funções de uma máquina. Para cada plataforma que pretende utilizar aplicações feitas em Java deve-se ter uma implementação da JVM específica para a mesma. Essa abordagem permite que uma aplicação feita em Java possa ser executada em uma determinada plataforma desde que a mesma possua uma JVM implementada. Outra vantagem do uso da JVM é que a mesma separa a aplicação (ou aplicações) Java do sistema operacional. Essa característica permite situações em que se houver algum problema na aplicação rodando na JVM não irá interfir no sistema operacional ou em outras JVM rodando simultaneamente. Simplificando, o processo para executar uma aplicação é: (i) O desenvolvedor/escrever o código fonte utilizando a linguagem de programação Java; (ii) Compilar o código fonte, ou seja, verificar se o mesmo possui erro de sintaxe e transformar o código fonte em código de máquina virtual (ByteCode) e (iii) pegar o ByteCode e executar na JVM. Abaixo uma figura ilustrando o processo.

JVM - Máquina Virtual JavaA JVM é basicamente uma especificação. Essa estratégia permite que, em teoria, qualquer empresa possa implementar uma JVM para sua plataforma. Para tornar essa JVM válida basta que a mesma seja certificada pela a empresa responsável pelo Java (Oracle).

ProgramandoPara começar é necessário conhecer os ambientes de execução e desenvolvimento. O ambiente de execução JRE (Java Runtime Environment) é formando basicamente pela JVM e bibliotecas necessárias para rodar/executar uma aplicação. O ambiente de desenvolvimento JDK (Java Development Kit) é composto pelo ambiente de execução (JRE) e outras ferramentas como por exemplo o compilador. Java é uma linguagem recomendada para aplicações de médio e grande porte. Existem outras linguagens de programação mais eficientes para pequenos projetos e equipes formada por poucas pessoas. Como é uma linguagem madura e possui uma forte coleção de bibliotecas, é ideal para situações em que a aplicação necessita ser escalável, ou seja, aplicações que ao longo do tempo vão evoluir melhorando o que já existe e onde serão adicionadas novas funcionalidades ao longo do tempo. Para desenvolver aplicações escaláveis basta fazer uso de boas práticas e seguir as recomendações sobre o design da POO.

Estou entendendo o que é o Java, mas quando vamos a objetolândia? Quero conhecer os objetos e saber o que esses caras tem de diferente.

Objeto é um conceito que envolve: (i) identidade; (ii) estado e (iii) comportamento. A identidade serve para garantir a unicidade do objeto, ou seja, algo que garanta que aquele objeto é único. No Java a identidade é garantida de forma automática no momento em que o objeto é criado. O estado é responsável por representar as características do objeto e os valores atribuídos a essas características. Pode-se citar como exemplo um determinado objeto aluno que possui a característica idade e em um dado momento o valor atribuído para essa característica é 19, ou seja, o estado do objeto aluno é composto pela característica idade e a mesma possui o valor 19. O comportamento de um objeto relaciona tudo que o mesmo é capaz de fazer, ou seja, as ações que o objeto pode executar.

As coisas que o objeto conhece sobre ele mesmo (estado) também é conhecido como variáveis de instância. As variáveis de instância representam os atributos/características do objeto. Aquilo que o objeto é capaz de fazer é chamado de método, ou seja, os métodos representam as ações que o objeto pode executar. Em uma linguagem de programação orientada a objeto uma variável é um objeto, um programa é um objeto, ou seja, tudo é objeto!

Se tudo é objeto, para que serve as classes? É a mesma coisa que Objeto?

Não! Classe não é a mesma coisa que Objeto. O conceito de classe pode ser entendido como uma especificação do objeto. Os objetos são criados a partir de uma classe, ou seja, a classe especifica tudo que o objeto conhece (variáveis de instância) e faz (métodos). Para cada objeto criado a partir de uma classe significa dizer que o mesmo foi instanciado a partir de uma classe, ou seja, criar instâncias de uma determinada classe é o mesmo que dizer que foram criados objetos a partir de uma classe. Na imagem abaixo temos uma representação de uma classe. O nome da classe é Aluno e a mesma possui as variáveis de instância nome e matricula. A classe Aluno também possui o método estudar().

classe

Vou ficar por aqui nessa primeira postagem. Para um melhor aproveitamento do conteúdo exposto deixo abaixo uma apresentação e uma vídeo aula. Quem tiver interesse em acompanhar mais conteúdos basta se inscrever no meu canal do youtube e acompanhar as postagens do blog.

[slideshare id=58256618&doc=poo01-160215010227]

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *