Desenvolvimento de Software: Alguns rápidos conceitos sobre 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.

Finalizando

Java é uma ótima linguagem sem dúvida, possui características realmente marcantes e diversas vantagens. É uma linguagem que atualmente é muito conhecida e possui uma extensa comunidade, logo é muito bem suportada. Você pode utilizar Java para construir desde aplicativos mais simples até sistemas robustos e complexos.
Quer escrever programas para Android? Linux? Windows? Mac? Use Java.

No próximo artigo, vou abordar a instalação do Netbeans para escrever códigos Java.

Livro recomendado: Java – Como Programar, Deitel, H. M. e Deitel, P. J.

Anúncios

9 opiniões sobre “Desenvolvimento de Software: Alguns rápidos conceitos sobre Java”

  1. Até que gostei deste desenvolvimento de sofwtare, mais pelo o que sei, existem várias e inúmeras linguagens em JAVA, fica a pergunta, existe a possibilidade de aprendermos e efetuarmos esses aplicativos ou criações na raça? Ou seja, manualmente , sem ter um curso? Porque de maneira correta, creio eu, que seria fazer cursos destas áres, mais pra quem fica tempos na net até no trabalho, poderia aprender de uma maneira rápida e prática, concorda? Grato se puder me esclarecer, conhecimento nunca é o limite. Abraço

    1. Flávio, a linguagem Java é uma só. Existem inúmeras aplicações em Java e algumas IDEs para desenvolvimento em Java, mas a linguagem é uma só.
      É possível aprender Java sozinho. O ideal é que se tenha um pouco de conhecimento em alguma outra linguagem de programação, como C, por exemplo, assim, o aprendizado das sintaxes pode ser reduzido, visto que durante o aprendizado inicial em programação, existe também o aprendizado da Lógica de Programação.

      Existe um canal no Youtube que ensina Java desde o começo, incluindo algumas aulas de lógica de programação. Até agora, foi o material mais rico e completo sobre Java que encontrei em vídeo. São 116 aulas explicativas e muito bem elaboradas.

      Conheça o canal “Universidade XTI”, de Ricardo Lopes Costa e aprenda Java de uma maneira super legal!

  2. Horra, muito obrigado pela dica Kadu, fico muito grato. Aproveitando a deixa rs, eu baixei o ubuntu 12.04 e veio em Winrar, pelo oque andei lendo, precisa ser instalado em ISO. certo? Bom, extrai o arquivo mais veio várias pastas, o que estou fazendo de errado? Agradeço mais uma vez.

    1. Flávio, na verdade, o o seu Winrar está configurado para abrir arquivos ISO, contudo, estes arquivos são, na verdade, cópias de CD em formato de arquivo.

      Utilize um programação de gravação de CDs de sua preferência. No caso do Nero, selecione a opção “Gravar imagem de CD/DVD” ou “Imagem, Projeto, Cópia” (ou algo parecido. Como estou com meu Nero desinstalado, não me recordo muito bem) e então indique onde está o arquivo ISO do Ubuntu. Ele irá precisar de um CD virgem para que seja gravado. Após a gravação, siga os passos descritos no terceiro capítulo do livro “Ubuntu – Guia do Iniciante 2.0”, ou virtualize-o através de uma Máquina Virtual, como VirtualBox, VmWare ou Microsoft Virtual PC.

      Abraço e sucesso!

  3. Kadu, deixa o seu nome completo no artigo ou no perfil, para eu poder lhe referenciar em um artigo da faculdade. abraços!

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s