Java é uma linguagem de programação orientada a objeto desenvolvida na década de 90 por uma equipe de programadores chefiada por James Gosling, na empresa Sun Microsystems. Diferentemente das linguagens convencionais, que são compiladas para código nativo, a linguagem Java é compilada para um bytecode que é executado por uma máquina virtual. A linguagem de programação Java é a linguagem convencional da Plataforma Java, mas não sua única linguagem.

Principais características da linguagem

A linguagem Java foi projetada tendo em vista os seguintes objetivos:

  • Portabilidade – Independência de plataforma – “escreva uma vez, execute em qualquer lugar” (“write once, run anywhere”);
  • Recursos de Rede – Possui extensa biblioteca de rotinas que facilitam a cooperação com protocolos TCP/IP, como HTTP e FTP;
  • Segurança – Pode executar programas via rede com restrições de execução;

Além disso, podem-se destacar outras vantagens apresentadas pela linguagem:

  • Sintaxe similar a C/C++.
  • Facilidades de Internacionalização – Suporta nativamente caracteres Unicode;
  • Simplicidade na especificação, tanto da linguagem como do “ambiente” de execução (JVM);
  • É distribuída com um vasto conjunto de bibliotecas (ou APIs);
  • Possui facilidades para criação de programas distribuídos e multitarefa (múltiplas linhas de execução num mesmo programa);
  • Desalocação de memória automática por processo de coletor de lixo (garbage collector);
  • Carga Dinâmica de Código – Programas em Java são formados por uma colecção de classes armazenadas independentemente e que podem ser carregadas no momento de utilização.

Exemplos de código

public class OlaMundo {
/**
* Método que executa o programa
* public = É visto em qualquer lugar da aplicação
* static = é iniciado automaticamente pela JVM, sem precisar de uma instância
* void = Método sem retorno (retorno vazio)
* main = Nome do método, que é obrigatorio ser este. Recebe como parâmetro um array de String.
* String[] args = Array de argumentos que podem ser repassados na chamada do programa.
*/
public static void main(String[] args) {
     System.out.println("Olá, Mundo!"); //Imprime no console a frase
  }
}

O método main é onde o programa inicia. Pode estar presente em qualquer classe. Os parâmetros de linha de comando são enviados para o array de Strings chamado args.

Criação de classes

public abstract class Animal {
   public abstract void fazerBarulho();
}
public class Cachorro extends Animal {
   public void fazerBarulho() {
       System.out.println("AuAu!");
   }
}
public class Gato extends Animal {
   public void fazerBarulho() {
       System.out.println("Miau!");
   }
}

O exemplo acima cria a classe Animal e duas classes derivadas de Animal. É importante observar que nas classes derivadas temos a redefinição do método fazerBarulho(). Esta redefinição é classificada como uma sobreposição (override) de métodos. O conceito de sobreposição somente pode ser identificado e utilizado quando temos classes dispostas em um relacionamento de herança.

Interfaces

public interface Pesado {
    double obterPeso();
 }
 public interface Colorido {
    Color obterCor();
 }
 public class Porco extends Animal implements Pesado, Colorido {
    public void fazerBarulho() {
        System.out.println("Óinc!");
    }

    //Implementação da interface Pesado
    public double obterPeso() {
        return 50.00;
    }

    //Implementação da interface Colorido
    public Color obterCor() {
        return Color.BLACK;
    }

    //Uma propriedade só do porco
    public boolean enlameado() {
        return true;
    }
 }

Uma interface modela um comportamento esperado. Pode-se entendê-la como uma classe que contenha apenas métodos abstratos. Embora uma classe não possa conter mais de uma super classe, a classe pode implementar mais de uma interface.

Polimorfismo

O Polimorfismo é uma característica muito importante em sistemas orientados a objetos. Termo proveniente do grego que significa “muitas formas”. Através dele conseguimos realizar várias tarefas.

Frameworks

É possível utilizar frameworks para facilitar o desenvolvimento de aplicações. Dentre os mais utilizados pode-se destacar:

  • Hibernate ferramenta para ORM;
  • Junit ferramenta para auxiliar na criação de testes unitários;
  • Log4j ferramenta para facilitar a criação de logs na aplicação;
  • Spring ferramenta que auxilia principalmente implementação de injeção de dependências e inversão de controle;
  • Struts controlador MVC (Model 2) web.

Fonte: Wikipédia,  a enciclopédia livre.

Anúncios