Jose M. Fernández Sobre o Autor: [Escreva um ou dois parágrafos sobre a biografia do Autor aqui] Conteúdo: Introdução Origem Obtenção e Instalação de Java Ambiente de desenvolvimento Caracteristicas Começar a programar em JAVA Resumo |
Java. Parte IAbstract: Este é o primeiro artigo de uma série, sobre programação com Java. A primeira parte é dedicada a descrever Java como linguagem, suas características gerais e a localização das fontes mais importantes de informação. IntroduçãoIniciamos uma série de artigos , em que descrevemos o ambiente e a linguagem de programação Java. Como primeiro propósito tentarei me afastar dos tópicos relacionados com esta linguagem, não falarei nada sobre a história da linguagem, sobre microondas, lavadora(se alguém se interessa, poderá lê-la em numerosas publicações, até em revista médicas). Tão pouco mostrarei Duke (o mascote de Java) que é um bonequinho narigudo em forma de triangulo, com o olhar sorrateiro, que ao menor descuido te saúda a rítmos frenéticos que relembra a velhos filmes americanos de ficção científica. Existe uma coisa que é como certa, "Java está na moda", não há uma só revista que não a aprecie e que não fale dela, nem empresa de software que não mostre algum produto para desenvolver applets em Java, nem página na Web que não contenha alguma coisa em Java. Tentarei nesta série de artigos aprofundar e na medida do possível aprender (todos juntos) esta linguagem de programação que é simples no básico, mas com uma alta complexidade e dificuldade de dominar e em constantes mudanças. Os primeiros artigos nos proporcionam uma descrição da linguagem em geral para em seguida irmos analizando em profundidade temas particulares como os applets, trabalhos para rede, JDBC, beans, etc. Farei pé firme que java é uma linguagem de propósito geral, não só para realizar applets para páginas web, ainda que é sómente para isto que é conhecido, não podemos nos ater neste aspecto, já que nos proporciona uma série de alternativas que podem ser interessantes, ainda que a propria realização de applets para a rede. Este primeiro artigo é um pouco mais descritivo que prático, no qual veremos fundamentalmente as características da linguagem, ambiente de desenvolvimento e só no final, veremos algum exemplo de programa Java. OrigemJava foi concebida por James Gosling, Patrick Naughton, Chis Warth, Ed Frank e Mike Sherindan na Sun Microsystem Inc. en 1.991, e na sua primeira versão, que durou 18 meses. Entre 1.992 e 1.995, colaboraram na maturidade do protótipo inicial Bill Joy, Arthur Van Hoff, Jonathan Payne, Frank Yellia, Tim Lindolm. Como podemos observar pelas datas, Java é anterior ou ao menos simultânea com a WWW (até o ano de 1.991, Tim Berners Lee não desenvolveu a linguagem HTML). Podemos considerar Java como uma linguagem de propósitos gerais, mas seu verdadeiro auge surgiu quando sua utilização em páginas da Web. A sintaxe de Java é similar ao C e as características de orientação a objetos do C++. Java é uma linguagem de programação coerente e lógicamente consistente. devido as similaridades com C e C++, poderíamos pensar que Java é uma versão para Internet de C++, mas tem importantes diferenças teóricas e práticas. Especialmente Java melhora e refina o paradigma de orientação a objetos de C++. A Internet ajudou para Java se tornar uma linguagem universalmente conhecida e pelo seu lado, Java tem um profundo efeito sobre a Internet, já que amplia o universo de objetos que podem mover-se livremente pelo ciberespaço (programas dinamicos autoexecutáveis). Obtenção e Instalação de JavaPara poder programar em Java necessitamos de várias ferramentas, sempre estamos nos referindo ao ambiente GNU/LINUX (pode ser que alguém esqueça): a implementação atual para Linux, é baseado no ELF e requer um núcleo 1.2.13 ou posterior Utilizaremos um ambiente chamado JDK (Java Development Kit). Netscape versão 2.0.14 ou posterior. Um editor de textos como Xemacs (trabalharemos sempre sobre Xwindows, ainda que não seja necessário em alguns casos, ainda que sim, para os Applets e programas com interfaces gráficos). Para baixar o JDK, podemos obter dentre outros, a partir do modo: http://www.blackdown.org/java-linux.html daqui escolheremos algum Mirror, para poder realizar o download mais rapidamente. Faz alguns meses a última versão era a JDK-1.1.3(com ela realizamos os exemplos), mas durante minha última visita, ví a versão 1.1.9, mas "atenção", se quisermos baixar tudo, são aproximadamente 24Mb., mesmo que o estritamente necessário é de apenas 12Mb (paciencia). Uma vez descomprimido com gunzip e tar não há nenhum problemas para começar a trabalhar O normal seria instalar no diretório /usr/local no qual, criará o diretório /JDK1.1.3 e dentro dele, encontraremos vários diretórios: /doc Documentação não oficial no formato HTML /demo Programas de demonstração em Java /lib Bibliotecas /bin As proprias ferramentas do JDK. Dentro do diretório /lib, encontraremos o arquivo "classes.zip";(não descomprima este arquivo), pois contém todas as classes compiladas que podemos utilizar no JDK. Dentro do diretório raiz, encontramos o arquivo "src.zip", este contém todos os arquivos fontes incluidos no arquivo "classes.zip". Não podemos compilar e impossibilitado por falta de informação. Ambiente de desenvolvimentocomo falamos anteriormente, estão incluidos no diretório /bin: javac : compilador java, compila programas fontes na linguagem java e bytecodes. Java : interprete java. Executa bytecodes Java. jre : similar ao interprete java(java), mas, pensado para usuários finais, que não exigem todas as opções disponíveis. appletviewer: testa e executa applets. jdb: depurador. javap: desassemblador de arquivos complados em Java. javadoc : gerador de documentação, produz um conjunto de páginas HTML, descrevendo as classes públicas e privadas, interfaces, construtores, métodos e campos. Também produz uma hierarquia de classes e um índice de todos seus membros. javah : para acrescentar métodos nativos (em linguagem C) a programas Java. jar : arquiva classes e fontes java em um arquivo Jar. javakey : manutenção de assinaturas digitais. updateAWT : atualiza os nomes que mudaram nos métodos do AWT1.02 em uma aplicação. Para poder trabalhar sem problemas de diretóris, acrescentaremos o diretório /usr/local/JDK1.1.3/bin na variável de ambiente PATH do usuário que desejamos. Se desejamos que seje fixada para todos os usuários, incorporar o diretório a variável PATH que está no arquivo /etc/profile. CaracterísticasAntes de continuarmos, poderiam perguntar: O que é Java?, e como resposta podemos ter (como no manual do JDK informa) que são duas coisas, por um lado, uma linguagem de programação e por outro uma plataforma. Como linguagem de programação, Java é uma linguagem de alto nível com as seguintes características (mais adiante as veremos com mais detalhes):
O primeiro que salta a vista, é que Java é interpretado, ainda que requeira uma compilação prévia, gerando um código objeto em bytecodes, que é de muito baixo nível, este código pode ser interpretado em distintas plataformas. Os bytecodes Java possibilita "escreve uma vez, executa sempre". Podemos compilar programas numa plataforma com um compilador Java e os bytecodes podem ser executados em qualquer arquitetura que possua implementação da máquina virtual java(JVM). Por exemplo, um programa Java pode ser compilado em uma plataforma Windows NT e ser executada sem nenhum problema (pelo menos assim nos diz a teoria) em um Sun Ultra Solaris. Uma plataforma poderá ser o ambiente hardware ou software no qual é executado. A plataforma Java se difere de outras plataformas, por que ela é só software e se executa sobre outra plataforma hardware. A plataforma Java tem dois componentes:
JVM é um computador abstrato no qual podemos executar programas Java compilados. Foi desenhado para ser fácil e pequeno, porque se pretendia que estivesse presente em todos os lugares que fosse possível. Esta simplicidade, foi feita tão rápidamente que se extendeu a todas as arquiteturas existentes, conseguindo uma classe de software comum a todas elas, pelo que nas redes de computadores heterogêneas(como é a Internet), a portabilidade é conseguida graças a Java. Como podemos imaginar esta é possívelmente uma das razões do auge desta irreparável desta tecnologia. a máquina virtual, devemos entender como uma classe de software sobre um processador, se não como seu nome indica pretender se um computador e pouco a pouco vão aparecendo Chips Java que darão apoio a máquinas reais Java, cartões de crédito, decodificadores de TV digital, etc. A API é uma grande coleção de componentes software que provê a linguagem de muitas utilidades, tais como interfaces gráficas(na terminologia Java, pacotes). Graças a estes pacotes, podemos escrever com Java. muitos tipos de programas distintos, afora as conhecidas Applets para Web, podemos desenhar, por exemplo servidores Web, proxis, servidores de correios, servidores IRC, e práticamente o que possamos imaginar tanto em relação com a Internet como não. Os agrupamentos das API, podem ser classificadas como:
Além deste núcleo básico da API, podemos dispor de estensões para 3D, telefonia, animação, etc. Como vimos no início desta caixa, Java possui uma série de características que veremos em detalhes:
Depois desta quantidade enorme de parágrafos(não é mais que o oficial do Java), farei que (outra vez) pergunte porque Java no mundo GNU/LINUX. Anteriormente falamos de um JDK para Linux, isto não é mais que uma implementação comercial da original desenvolvida pela Sun Microsystem(ainda que de livre disposição). Existem ferramentas como o compilador GUAVAC (http://HTTP.CS.Berkeley.EDU/~engberg/guavac) sob licença GPL, com ele podemos compilar qualquer fonte Java sem nenhum tipo de problemas. Destacaremos assim mesmo uma máquina virtual chamada KAFFE (http://www.kaffe.org), sob licença Berkeley. Estes dois projetos estão bastante avançados, ainda que necessitem das bibliotecas das classes Java da Sun(de livre distribuição no momento) para ter um sistema de desenvolvimento completo. Existem também projetos em fases iniciais para criar ambientes de desenvolvimento rápidos e visuais de aplicações Java. Existe um grande movimento na rede, sobre a tecnologia JAVA y GNU, com o objetivo de desenvolver ferramentas completas e independentes da SUN. Com isso, podemos fazer uma ideia da importancia de Java, e quando a moda passar com certeza alguma coisa ficará (bastante, diria eu). Começar a programar com JAVAUma vez vistos todas as características gerais da linguagem, veremos um programa real. Como disse na introdução deste artigo, gostaria de evitar o máximo possível a colocação de tópicos, quer dizer, não faremos o primeiro programa saudando o mundo, em lugar dele, veremos em nossa tela, um quadro nas dimenssões que quisermos (um pouco mais complicado, mas sem introduções.): class Cuadro { public static void main (String args[]) { int l ,a; if (args.length == 2) { l = Integer.valueOf(args[0]).intValue(); a = Integer.valueOf(args[1]).intValue(); } else { l= 20; a= 15; } for (int i=l; i>0; i--){ System.out.print("*"); } System.out.print("\n"); for (int i= a-2; i>0; i--){ System.out.print("*"); for(int j=l-2; j>0; j--) { System.out.print(" "); } System.out.print("*\n"); } for (int i=l; i>0; i--){ System.out.print("*"); } System.out.print("\n"); } } A primeira coisa que temos que ter em conta, é o nome que damos ao arquivo fonte que é muito importante, já que este é definido como uma "unidade de compilação". Pode ser um arquivo que contenha uma ou mais definições de classe. O compilador espera que estes arquivos tenham a extensão .Java (4 caracteres) pelo que alguns sistemas como DOS ou Windows 3.1 não suportam. Como vemos no exemplo o nome da classe definida também coincide com o nome do arquivo fonte e não é por casualidade, em Java, todo o código tem que estar dentro de uma classe. Por conveniencia, o nome da classe tem que coincidir com o nome do arquivo que contém o programa. Além disso, Java é sensível ao contexto (diferença entre maiúsculas e min;usculas). Para compilar o exemplo, na linha de comando, digitamos: > javac cuadro.javaO compilador Java (se tudo foi bem) criará um arquivo cuadro.class que contém, naturalmente o código binário (bytecode) e este poderá ser executado pelo intérprete: > java cuadroQuando compilamos código fonte de Java, cada classe individualmente é colocada em um arquivo que tem o mesmo nome que a classe. Esta é a razão pela qual é uma boa prática chamar os arquivos fontes da mesma forma que a classe que a contém, já que assim, o nome do arquivo fonte coincidirá com o nome do arquivo.class. Ainda que nosso exemplo quadro.java é bastante simples, nos ajudará a compreender os elementos fundamentais de um programa Java, e sobretudo a estrutura de um programa. O que se tem de levar em conta, é que este exemplo não é um applet para incluir em uma página HTML, e sim um programa independente que é executado com o interprete à partir da linha de comandos. A primeira linha do programa é: class cuadro { Nesta linha, empregamos a palavra reservada class para declarar que vamos definir uma nova classe, "cuadro" é o identificador do nome da classe. A definição da classe completa incluindo todos os seus membros, estão entre as chaves ({ }), as mais gerais. Note que em Java, toda a atividade de um programa ocorre dentro da classe. Na linha seguinte: public static void main (String args[]) { De inicio, podemos destacar o método main(). Todas as aplicações Java começam sua execução chamando este método (como em C/C++). Continuando, comentaremos alguns conceitos que posteriormente (em outros artigos), detalharemos ainda que faremos uma rápida passada, sómente para comprender o exemplo. A palavra chave public permite controlar a visibilidade das classes membros. Quando uma classe é declarada como public, esta pode ser utilizada por código definido fora de sua classe. Static permite que o método main() seja chamado sem necessidade de instanciar a classe. Void indica que não devolve nenhum valor. Para enviar informações a um método, realizamos através de variáveis especificadas entre os parenteses que seguem o nome do método, em nosso caso, declaramos um parâmetro chamado arg que é uma matriz de instancias da classe String. Naturalmente todo o código do método, está também entre chaves. E na linha: int l, a ; como todo programa que se preze, declaramos duas variáveis do tipo inteiro. Em Java, cada variável tem que ser declarada préviamente. Como podemos observar, cada instrução termina com um " ; " . O resto das linhas, articulam um pequeno algorítimo, no qual:
Uma prática que podemos fazer com este exemplo, além de compilá-lo e executá-lo, é comprovar que é de arquitetura neutra, já que o programa compilado quadro.class, é executado sob o Windows 95, (sem que sirva de precedentes), comprovaremos seu comportamento sob o Linux. ResumoRelatamos os aspectos gerais da linguagem de programação Java. Não fizemos nada mais que começar e temos um grande caminho em dois artigos mais. Para realizar uma descrição completa ( e não muito ampla( desta linguagem. No próximo artigo, veremos entre outros: a definição e tipos de variáveis, instruções básicas, classes, etc. Em fim, a maior parte das especificações da linguagem. Darei em cada artigo as referencias, publicações e endereços, em que tenha me baseado muito ou pouco nesta série de artigos.
|
Esta página WEB é mantida por Miguel Angel Sepulveda © Jose M. Fernandez 1998 LinuxFocus 1998 |