POO – Meu Primeiro Código

ProgramadorSegundo texto da série sobre Programação Orientada a Objeto (POO). Será apresentado, principalmente para quem está iniciando, como escrever o primeiro código em Java. Para esta tarefa será utilizado o ambiente de desenvolvimento integrado Eclipse. O Eclipse é a IDE (Integrated Development Environment) mais popular da comunidade de desenvolvedores Java. Para desenvolver a primeira aplicação será necessário baixar e instalar o JDK (ambiente de desenvolvimento Java)  disponível aqui e baixar, descompactar e executar o Eclipse.

O primeiro código a ser implementado será a classe chamada MinhaPrimeiraClasse a qual possui apenas um método. O método que compõe a classe é o método main(). Na figura abaixo temos uma imagem com a representação gráfica da classe.

MinhaPrimeiraClasseLogo abaixo o código fonte da classe MinhaPrimeiraClasse.

MinhaPrmeiraClasseO código acima possui o método main() onde seu conteúdo consiste apenas em uma linha de comando. O comando System.out.println(“Olá, Mundo!”) escreve na tela a mensagem  “Olá, Mundo!”. Como manda a tradição, o primeiro código a ser escrito por um programador ao aprender uma nova linguagem de programação deve ser o internacionalmente conhecido “Olá mundo!”.

Em java, todo e qualquer código é inserido dentro da(s) classe(s). Nas aplicações Java é necessário pelo menos uma classe e um método main(). Uma aplicação deve/pode conter mais de uma classe e com relação ao método main() o recomendado é que cada aplicação possua apenas um. O método main() é o método principal da aplicação o qual a máquina virtual java (JVM) vai procurar para iniciar execução do aplicativo, ou seja, é o ponto de partida da execução da aplicação.

Ao codificar é recomendado que exista apenas uma classe por aquivo e o mesmo irá utilizar a extensão “.java”. O arquivo deve ter o mesmo nome da classe. No caso, arquivo contendo o código fonte da classe MinhaPrimeiraClasse terá a seguinte nomenclatura “MinhaPrimeiraClasse.java”. Logo após escrever o código fonte o mesmo deve ser compilado e transformado em código de máquina virtual (ByteCode). Na prática o arquivo “MinhaPrimeiraClasse.java” irá dar origem a outro arquivo chamado “MinhaPrimeiraClasse.class” o qual será executado pela JVM. O processo é ilustrado pela figura abaixo.

processoAo utilizar o Eclipse pela primeira vez deve-se definir a workspace (espaço de trabalho), ou seja, a pasta que irá conter todos os projetos/aplicações a serem desenvolvidas utilizando a ferramenta.  Para iniciar o desenvolvimento de uma aplicação é necessário criar um projeto. O tipo de projeto que vamos trabalhar é o Java Project (projeto java). Ao se criar um novo projeto no Eclipse deve-se definir: (i) nome do projeto; (ii) o ambiente de execução (JRE); (iii) Layout do projeto, ou seja, se vai querer fazer uso da separação entre o código fonte (src) do código de máquina virtual (bin). Para cada novo projeto será criada uma pasta dentro da workspace. O projeto pode ser organizado em duas pastas diferentes src e bin. A pasta src irá conter o código fonte, ou seja, todos os arquivos com a extensão “.java”. Já a pasta bin irá conter os código de máquina virtual (ByteCode), ou seja, os aquivos “.class”. Acesse o vídeo no fim desta publicação para acompanhar a vídeo aula mostrando a implementação da classe MinhaPrimeiraClasse e mais exercícios utilizando o Eclipse.

As classes devem ser criadas dentro do projeto, mais especificamente dentro da pasta src. Normalmente as classes são organizadas através de pacotes. O uso de pacotes será abordado em um momento posterior. As instruções e os comandos que irão desencadear ações em java, são permitidas apenas dentro de algum método e os mesmos são finalizados com ; (ponto e vírgula). O escopo das classes e dos métodos são delimitados com chaves {}. As declarações de variáveis é feito utilizando a seguinte sintaxe tipoDaVariável nomedaVariável. Exemplo: int idade.

Finalizo aqui a segunda postagem sobre Programação Orientada a Objeto. Não deixe de conferir a apresentação, a vídeo aula e de realizar os exercícios propostos nos mesmos.

[slideshare id=58796075&doc=poo2-160227161842]

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]