Desenvolvimento de Softwares em Java

Desenvolvimento de Softwares em Java

Continuando nossa série sobre desenvolvimento de software no Linux, hoje abordaremos alguns conceitos sobre Java.

Curiosidade

Java é uma linguagem de alto nível que suporta o paradigma da orientação a objetos, nascida em meados dos anos 90 em um projeto financiado pela Sun Microsystem.

A linguagem foi concebida em um projeto de codinome Green, contudo, o primeiro nome da linguagem Java, dada por seu criador James Gosling era Oak (que em inglês quer dizer “Carvalho”), em homenagem a uma árvore que dava para a janela de seu escritório na Sun, porém, descobriu-se que já havia uma linguagem chamada Oak.

O projeto Green resultou no desenvolvimento de uma linguagem baseada em C e C++, e seu produto não mais poderia chamar-se Oak devido a existência de uma outra linguagem que trazia este nome.

Em uma bela tarde, uma equipe da Sun visitou uma cafeteria local que servia um café importado de uma cidade chamada Java, assim, o nome foi sugerido, pegou e até hoje o logo do Java é uma xícara de café e o nome Java.

O Java foi anunciado formalmente pela Sun em 1995 em uma importante conferência. Então, a linguagem Java gerou interesse imediato na comunidade comercial, devido sua grande facilidade em prover um ambiente onde o produto final poderia ser interativo e dinâmico na web, para desenvolvimento de aplicativos de grande porte e aplicativos mobile. Java é pau pra toda obra!

Hoje, o Java é propriedade da Oracle.

Facilidade

As palavras chave desta linguagem são: reusabilidade, poliformismo, herança, encapsulamento, portabilidade. Java usa o conceito “Write once, run anywhere!” (Escreva uma vez, rode em qualquer lugar!)

Com Java é uma linguagem orientada a objetos, o código é normalmente dividido em arquivos “Classes“.

Em Programação Orientada a Objetos, as classes são estruturas que representam as características de um objeto de forma abstrata, e podem possuem “atributos” e “métodos“, que definem o comportamento do objeto.

Boas práticas de programação definem que o ideal é que cada classe deve ser responsável por sua própria função ou funções em um determinado contexto (Alta coesão), e ser o mínimo possível dependente de outras classes (Baixo acoplamento), ou seja, ter suas próprias responsabilidades bem definidas.

Uma das melhores maneiras de se projetar programas em Java é utilizando diagramas da UML (Diagrama de classes, de casos de uso, de interação, etc), que auxiliam a identificar as responsabilidades, limites de cada classe, atributos, relacionamentos, etc.Os diagramas de classes funcionam como linhas de base em um projeto, e fazem parte da documentação do mesmo.

Veja em UML como fica uma classe com atributos e métodos.

E como fica a mesma classe escrita em Java:

Os métodos, como pode se perceber, realizam tarefas e retornam (ou não) informações. Existem também os métodos Construtores, que, como o nome já diz, constroem objetos.

Vantagens e desvantagens do Java

Das inúmeras vantagens que o Java possui sobre o C, a que mais se destaca extenso conjunto de bibliotecas disponíveis, que contém centenas de funções prontas para serem usadas, bastando importar as classes que contém tais métodos.

Java é uma linguagem que possui sintaxe muito parecida com a linguagem C/C++. Fazer uma lista encadeada no C é complicado para você? No Java é simples, pois, tirando-se a parte lógica da programação, existem centenas de funções prontas, como Listas, Pilhas, Árvores, etc.

Pode se encapsular os atributos de classes ou torná-los acessível à outras classes, assim como também é possível ter  acesso aos métodos públicos de outras classes. É possível verificar a correção do código enquanto ele ainda estiver sendo digitado através de IDE’s, que são “programas para se construir programas” (diferentemente do C, que só se sabe o resultado no momento da compilação ou execução do programa).

Outra grande vantagem é a facilidade de portar sua aplicação cada qualquer sistema, uma vez que aplicativos Java rodam sobre uma JVM – Java Virtual Machine – você não precisa se preocupar em reescrever metade do código, pois ele é projetado para rodar dentro de uma máquina virtual do próprio Java.

O reuso de código em Java é muito mais visível do que nas linguagens procedurais, pois, se seguidas as convenções de boas práticas de programação, seu código tende a ser modularizado, o que também contribui na manutenção do código.

Por rodar em uma máquina virtual, aplicativos em Java tendem a perder um pouco em rapidez do que programas escritos em outras linguagens que geram arquivos através da compilação (os arquivos executáveis), pois Java não gera os executáveis, mas sim o bytecode, assim, programas em Java não são executados, mas sim, “interpretados”.

Outra desvantagem do Java é a facilidade de descobrir-se o conteúdo dos bytecodes através da engenharia reversa, o que pode gerar problemas relacionados à descoberta do código e consequente “perda” sobre a propriedade intelectual, contudo, existem soluções que tornam o código “embaçado”.

O reuso de código em Java é muito mais simples que nas linguagens procedurais, pois, utilizando o conceito de interfaces, você pode criar aplicações modulares, que se acoplam através das interfaces.


Newsletter Diolinux
Talvez Você Também Goste