INTRODUÇÃO A JAVA E ORIENTAÇÃO A OBJETOS

   

A Linguagem de Programação JAVA

   

 

Java possui algumas propriedades particulares, a saber:

 
  • Portável: Em Java, não há aspectos dependentes de implementação. A compilação de uma aplicação em Java gera um código independente de máquina, denominado bytecode que, por sua vez, pode executar, praticamente, em qualquer tipo de plataforma (sistema operacional + hardware); não havendo a necessidade de re-compilação de código. Para tanto, deve-se utilizar uma JVM (Java Virtual Machine) específica para a execução naquela plataforma. Por exemplo, um caractere em Java (tipo de dado primitivo char) tem sempre 32 bits, independentemente da plataforma de execução das aplicações. Observação: O próprio compilador Java (aplicativo javac) é escrito em Java, a fim de permitir portabilidade entre plataformas distintas.

  •  

     

     

     

     

  • Orientada a objetos: Java possui propriedades peculiares à OO (Orientação a Objetos) – abstração, encapsulamento, herança e polimorfismo. Em adição, Java também permite a criação de classes abstratas.
  •  
  • Segura: Java possui um conjunto de soluções cujo objetivo é maximizar a segurança no desenvolvimento e execução de aplicações, coleta automática de lixo (garbage collection), alocação dinâmica de memória em tempo de execução (diretamente quando se usa a palavra-chave new e indiretamente quando se faz uma invocação à um método que possui variáveis locais ou argumentos) e eliminação da utilização de ponteiros diretamente pelo programador, sendo seu objetivo evitar erros em decorrência da manipulação direta e incorreta de memória, por parte deste profissional (programador). Em especial, o tratamento de exceções torna as aplicações em Java mais robustas, em virtude da possibilidade de manuseio de condições anormais.
  •  
  • Possibilita concorrência: Em Java, é permitida a criação de várias threads (ou linhas) de execução, fornecendo assim, um ambiente para o desenvolvimento e execução de aplicações concorrentes, otimizando o uso de recursos computacionais.
  •  
  • Fornece facilidades para computação distribuída: Java disponibiliza uma série de mecanismos para a programação com sockets, RMI (Remote Method Invocation), TCP/IP (Transmission Control Protocol/Internet Protocol), entre outros recursos.
  •  
  • Disponibiliza bibliotecas prontas: Java contém várias classes prontas que implementam, por exemplo, manipulação de strings, estruturas de dados poderosas, mecanismos de entrada/saída, interfaces gráficas e diversos utilitários, entre outras facilidades.
  •  
  • Simples: Quando foi criada a tecnologia Java, a mais usada era a Linguagem C. Propositalmente Java foi criado em uma forma simples de atender o mercado. Fizeram uma linguagem com sintaxe básica muito parecida com a Linguagem C para que o mercado se adaptasse facilmente e os programadores de C não tivessem muita dificuldade de migrar para a nova linguagem, tornando-se muito mais atraente. Um exemplo, o fato de Java ser Case Sensitive assim como a Linguagem C.
  •  
 

A Programação Orientada a Objeto

 

A POO (Programação Orientada a Objeto) é um paradigma de programação baseado em objetos que são criados a partir de classes.

 

As classes são estruturas que contém atributos (representações de dados) e métodos (operações que manipulam dados). Um objeto, por outro lado, é a materialização (ou instanciação individual) de uma classe. Desta forma, pode-se considerar que classes são moldes para objetos, assim como o tipo 'inteiro' representa o molde para as variáveis declaradas como inteiros.

 

Em termos de classe, imagine, por exemplo, que enquanto a planta de uma residência expressa o "molde" para a construção de várias residências; estas, quando construídas (materializadas), são consideradas instâncias da classe, isto é, objetos. Para este exemplo se pode definir como atributos a área coberta, o número de quartos, o número de salas, se tem ou não garagem, cor externa, entre outros dados; e os métodos para obter o valor da área coberta, obter a quantidade de quartos e salas, modificar a cor externa, etc. Observe que não se pode modificar a cor externa da planta de uma residência e sim, da sua instância, ou seja, de uma residência em si, realmente construída (um objeto existente no mundo).

 

Uma vez instanciado, um objeto poderá ser usado para representar os dados e, assim, permitir a execução de operações (métodos) sobre estes. Nesse contexto, usa-se uma referência ao objeto – uma variável do tipo da classe daquele objeto. Por exemplo, para a classe que representa a planta de uma residência (class PlantaResidencia), o objeto minhaResidencia denota, portanto, uma referência ao objeto criado do 'tipo' PlantaResidencia.

 

Os objetos também podem interagir com outros objetos, por meio de troca de mensagens – no linguajar de OO (orientação a objetos) se diz que objetos invocam métodos uns dos outros para efetivar tal comunicação.

 

Convenções

 

Algumas convenções são padronizadas na elaboração de programas em orientação a objetos, sendo importante conhecer as descritas a seguir:

 
  • Nomes de classes têm inicial maiúscula, valendo para nomes compostos a mesma convenção;
  •  
  • Nomes de Interfaces seguem a convenção aplicada aos nomes de classe;
  •  
  • Nomes de atributos, métodos e variáveis têm inicial minúscula e, nos casos de nomes compostos, as iniciais são maiúsculas a partir da segunda palavra que compõe este nome (identificador);
  •  
  • Nomes de construtores são sempre idênticos aos nomes das classes às quais pertencem.
  •  
 

Compilação e Execução de um Programa Simples

 

Geralmente, grandes programas de OO são elaborados em ambientes integrados de desenvolvimento, mas em Java estes programas podem ser elaborados em editores de textos convencionais e que respeitam o padrão ASCII e MultiCode. Obseve a seguir um programa simples em Java.

 
/**
 * Síntese:
 *   Objetivo: Saudar usuário
 *   Entrada: sem entrada
 *   Saída: mensagem de saudação 
*/
  public class OlaMundo {
     public static void main(String[] args) {
        System.out.println("Olá mundo!");
     }
  }
 
 

A execução deste programa será apresentada na console do ambiente que poderá ser usado para programação com Java, sendo o resultado de saída deste simples programa representado na janela a seguir:

 
 

Na primeira linha de instrução, após a Síntese do problema explicitada como comentário, estão as instruções ao compilador Java. Observe que o bloco de comentário é aberto com a sintaxe /** que encerra somente no */. Similar a Linguagem C também poderia ser usado o comentário de linha //. Assim, todo conteúdo da linha 1 até 6 é desconsiderado pela compilação e execução deste programa.

 

Na linha 7 é declarada a classe OlaMundo, onde a expressão public indica que esta classe é acessível universalmente (externamente a esta classe – isto é, para outras classes que possivelmente sejam criadas, independente do pacote ao qual pertençam) e class, seguido do nome da classe (Ola Mundo), indica a declaração em si (o identificador da classe), sendo { na sequência e } na linha 11 delimitadores do corpo da classe Ola Mundo.

 

Lembre que em uma classe são declarados atributos e métodos. Porém, a classe Ola Mundo possui apenas um método – o main(), declarado na linha 8, com { na sua sequência de instrução (na mesma linha) e } na linha 10 delimitando o seu corpo (corpo do método principal). Observe que o método é público (public) e estático (static). O modificador public denota possibilidade de acesso externo enquanto o qualificador static indica que o método pode ser compartilhado por todos os objetos da classe OlaMundo e ainda pode ser invocado mesmo quando não forem criadas instâncias desta classe (usando, OlaMundo.main() - com argumentos ou não).

 
Com intuito de apoiar o aprendizado sobre Orientação a Objeto, sugere-se assistir a videoaula para o aperfeiçoamento no conhecimento deste conteúdo.
 

Atividade de Fixação

 

No intuito de fixar a aprendizagem iniciada por meio deste módulo e verificar como seu entendimento sobre este conteúdo está, estão sendo sugeridos alguns exercícios de fixação para serem resolvidos. Clique no link de exercícios ao lado, pois será por meio dele iniciada a lista de exercícios sobre os conteúdos estudados até este momento nesta disciplina.