Вы находитесь на странице: 1из 21

Manuais e recursos para desenvolvimento web www.criarweb.

com

Manual de Java

Autores do manual Este manual foi criado pelos seguintes colaboradores de Criarweb.com: Victorino Blanco Gonzlez
http://www.mercadoprofesional.com (13 captulos)

Manual de Java: http://www.criarweb.com/java/ Os manuais de CriarWeb.com tm copyright dos autores. No reproduzir sem autorizao.

Manuais e recursos para desenvolvimento web www.criarweb.com

Introduo a Java
1. Um Toque de Histria. 2. O que JAVA 2? 1. Un Toque de Historia: Java nasce e d seus primeiros passos em 1991 formando parte de um projeto de desenvolvimento de suporte software para eletrnica de consumo ( geladeiras, lavadoras... ), realizado por uma equipe de SUN chamado Green Team. Este primeiro enfoque d Java uma das suas mais interessantes caractersticas: A portabilidade, visto que Java tinha que funcionar em numerosos tipos de CPUs, e portanto foi pensado para ser independente da plataforma sobre a que funcione. Esta caracterstica muito possivelmente a que permitiu a Java converter-se atualmente na linguagem por excelncia para a criao de aplicaes em Internet. Este salto de Java para converter-se em uma linguagem de programao para computadores se d definitivamente em 1995 quando na verso 2 do navegador web netscape foi includo um intrprete para esta linguagem, produzindo deste modo uma autntica revoluo na Internet. Com este novo enfoque Java continua crescendo e lana sua verso 1.1 em 1997, com muitas melhorias e adaptaes, fruto de uma reviso substancial da linguagem. Java 1.2 aparece no fim de 1998 e mais tarde rebatizado como Java 2.
Referncia: Temos um artigo que tambm comenta o que Java e oferece algum outro dado de interesse.

2. O que JAVA 2? Sun descreve a Java como "simples, orientado a objetos, distribudo, interpretado, robusto, seguro, de arquitetura neutra, porttil, de altas prestaes, multi-funes e dinmico". A parte de ser estas caractersticas a lgica lista de elogios que um pai sempre daria a um de seus filhos mais aplicados, efetivamente descrevem bastante bem a Java. Java 2 a terceira verso importante da linguagem de programao Java. Parte da verso 1.1 sem lhe introduzir mudanas substanciais, simplesmente ampliando-o. Java apresenta muitas caractersticas que o diferenciam das linguagens similares como C++, comeando pelas possibilidades de execuo. Basicamente um programa em Java pode ser executado como: Stand Alone: Aplicao independente. Applet: Uma aplicao especial que se executa no navegador do cliente. Servlet: Uma aplicao especial sem Interface que se executa no servidor.

Por outro lado um desenvolvimento em Java nunca comea desde zero. Java implementa consigo um grande nmero de classes, includas gratuitamente em seu ambiente de desenvolvimento, para realizar variadas tarefas que permitem ao desenvolvedor centrar-se nas caractersticas mais inerentes a seu projeto. Sun distribui gratuitamente atravs de sua pgina web, o ambiente de desenvolvimento Java
Manual de Java: http://www.criarweb.com/java/ Os manuais de CriarWeb.com tm copyright dos autores. No reproduzir sem autorizao. 2

Manuais e recursos para desenvolvimento web www.criarweb.com

chamado indistintamente com estas siglas: JDK, SDK ou J2SE. Este pacote inclui como dissemos as classes includas j em java, ou seja o API de Java. Tambm inclui o compilador de Java e o que permite a Java funcionar em nosso computador: o JRE (Java Runtime Enviroment). O JRE inclui os elementos necessrios para fazer funcionar programas java em nosso computador. Principalmente nos instala a Mquina Virtual de Java e os plugins necessrios para o/os navegador/es instalados em nosso sistema. O JRE tambm pode ser baixado independentemente do ambiente de desenvolvimento, pois se distribui em um pacote chamado J2RE. E o que a Mquina Virtual de Java? Pois, como comentamos antes, Java est pensado para ser independente da arquitetura sobre a qual funcione e a maneira que tem Java para consegui-lo atravs da emulao de uma mquina software sobre a que funcionam os programas compilados com Java. Ou seja, um programa compilado com Java no tem cdigo compreensvel por nenhum processador, esse cdigo s entendido pela Mquina virtual de Java que o traduz a cdigo que possa ser compreendido pelo processador sobre o qual funciona. E alm disso, pode fazelo funcionar sobre o sistema operacional sobre o que est instalado. Portanto o nico dependente do Hardware a mquina virtual, pois tem que conhecer o que tem por debaixo para realizar a traduo, porm os programas em Java sempre podem funcionar sobre uma mquina virtual seja aonde estiver instalada. Artigo por Victorino Blanco Gonzlez

Instalar o ambiente de desenvolvimento Java e o primeiro programa


J podemos ir abandonando toda esta teoria e vamos entrando pouco a pouco na prtica que o que mais nos interessa. Para comear vamos instalar o ambiente de desenvolvimento em nosso mais que habitual Windows. Podemos baixar o software gratuitamente da pgina oficial de Sun. Atualmente os pacotes de desenvolvimento que oferece Sun vem com uma ferramenta IDE ( Integrated Development Enviroment) chamada Netbeans. Esta ferramenta muito potente, talvez at demais para comear com Java, ns nos centraremos em outra chamada Eclipse, tambm gratuita. Uma vez baixado teremos em nosso computador um arquivo chamado: "j2sdk-(versao)-nb3_6-bin-windows.exe". Para instalar temos somente que executar o arquivo, seguir as instrues e lhe dar a rota de instalao no momento em que for requerido. Quando o tivermos instalado comprovaremos que foi criado em nosso Autoexec.bat as seguintes sentenas:
set JAVAPATH=<diretorio onde tiver instalado java> PATH=.;%JAVAPATH\bin;%PATH% set CLASSPATH=.\;%JAVAPATH%\lib\classes.zip;%CLASSPATH%

No caso de que no as tenhamos, ns mesmos as escreveremos e salvaremos as mudanas.

Manual de Java: http://www.criarweb.com/java/ Os manuais de CriarWeb.com tm copyright dos autores. No reproduzir sem autorizao.

Manuais e recursos para desenvolvimento web www.criarweb.com

Uma vez reiniciado o computador, os executveis de java instalados sero disponveis desde todo o sistema e portanto tambm para Eclipse que como dissemos, instalaremos a seguir. A parte disto tambm sero disponveis todas as classes para o compilador de java "javac" pois o caminho se define com a varivel "CLASSPATH" j definida. Pois agora podemos programar nosso querido programa "Ola mundo". Copie este cdigo em um editor de texto de sua preferncia e salve-o como "Exemplo.java". Mais tarde nos ocuparemos de entender qual seu significado.
public class Exemplo { public static void main ( String argumentos[] ) { System.out.println ("Ola Mundo\n"); } }

Agora vamos compilar o programa e proceder a execut-lo. Para isto vamos abrir uma janela de linha de comandos em Windows e nos dirigiremos ao diretrio onde est "Exemplo.java" e executaremos o compilador de java "javac" com este comando: "javac Exemplo.java". Podemos ver que foi criado no mesmo diretrio um arquivo com o mesmo nome, porm com a extenso ".class". Este arquivo um executvel java e portanto funciona dentro da mquina virtual java. Para prov-lo executamos o seguinte comando: "java Exemplo" dentro do mesmo diretrio. Se tudo foi bem, dever mostrar: "Ola mundo" como voc pode provavelmente ter suposto. J nos falta somente Instalar um Ambiente de desenvolvimento integrado (IDE) para fazer o trabalho mais simples na hora de tirar linhas de cdigo em java e maneja-lo com nossas classes. Artigo por Victorino Blanco Gonzlez

Instalao de um ambiente de desenvolvimento integrado (IDE): Eclipse.


Como j dissemos, um IDE pode tornar um trabalho muito mais simples, sobretudo se nosso desenvolvimento j vai manejando um bom nmero de Classes. Ademais estes ambientes nos permitem muito mais versatilidade para depurar nossos programas visto que tm debbugers muito mais avanados, coisa que nos favorece para ir comeando neste mundinho. Eclipse um IDE de cdigo aberto. Existem mais ferramentas similares de cdigo aberto disponveis, mas decidimos usar esta porque a que acredito que tem a melhor relao qualidade-facilidade das que encontrei. Sua instalao muito simples, podemos baixa-lo de www.eclipse.org em forma de arquivo ZIP e s temos que descompact-lo na pasta onde quisermos t-lo instalado. Para execut-lo somente h que iniciar o arquivo Eclipse.exe . Uma vez iniciado o nico que nos pedir ser a rota padro onde queremos que eclipse v salvando os projetos que criarmos:

Manual de Java: http://www.criarweb.com/java/ Os manuais de CriarWeb.com tm copyright dos autores. No reproduzir sem autorizao.

Manuais e recursos para desenvolvimento web www.criarweb.com

Depois disso nos aparecer a janela principal de Eclipse:

Agora vamos nos dispor a fazer o mesmo exerccio que fizemos antes, porm com ajuda de Eclipse. Como evidente para um exerccio to trivial vamos supor quase mais um gasto que uma economia, mas o importante conseguir para comear um manejo bsico de Eclipse. Eclipse pode usar vrias perspectivas em sua janela principal dependendo do tipo de desenvolvimento que iremos realizar. Agora abriremos a perspectiva "Java":

conveniente que todos os desenvolvimentos que fizermos, faamos dentro de um projeto e por mais que nosso exerccio seja to simples como til a estas alturas, vamos faze-lo como tal. Portanto vamos crear um projeto para nosso desenvolvimento: Para isto lhe damos a "File New Proyect". Como podemos ver, h muitos tipos de projetos para poder criar para nosso desenvolvimento. Escolhemos "Java proyect" e lhe damos a seguinte. Na janela a qual estamos agora, podemos dar-lhe um nome a nosso projeto e ento, aparecem duas opes relativas organizao de nosso projeto. Deixaremos tal como est para que simplesmente seja colocado nosso arquivos .java e .class (fontes e executveis java) na pasta que escolhemos para o ambiente de trabalho ao iniciar eclipse, e clicamos em "Finish".

O seguinte passo ir acrescentando nossas classes ao projeto. Se no tiver conhecimento de programao orientada a objetos lhe recomendamos que leia artigo sobre tal, que h neste mesmo site, e que ser indispensvel para programar com Java. Por agora continuamos. Clicando com o boto direito na pasta do projeto que foi criado na parte esquerda da janela principal podemos dar-lhe a "New Class" Esta janela tem vrias opes que iremos entendendo pouco a pouco. Por agora simplesmente colocaremos os nomes da classe, do pacote onde quisermos inclu-la (podemos deixar o pacote padro deixando este campo em branco) e marcaremos as opes que vemos na ilustrao.

Como podemos comprovar ao escrever os nomes das classes e do pacote nos avisa de certas

Manual de Java: http://www.criarweb.com/java/ Os manuais de CriarWeb.com tm copyright dos autores. No reproduzir sem autorizao.

Manuais e recursos para desenvolvimento web www.criarweb.com

regras para a nomenclatura destes. Podemos avanar que os nomes das classes sempre comeam em maiscula e que os dos pacotes em minscula, j comentaremos isto mais adiante e mais detalhadamente. Ao dar a finalizar, nos cria uma planilha que podemos ver no centro da tela. Esta rea a que corresponde ao editor e aqui onde escreveremos nossos programas em Java. A planilha criada nos acrescenta as linhas bsicas no tipo de classe Java que criamos com todos os passos anteriores. Assim como no exemplo anterior quando fizemos o habitual "ola mundo" escrevemos o que falta para que fique tal como na figura. Ou seja, introduzimos System.out.println ("Ola Mundo\n"); dentro do mtodo "main" da classe. J nos falta somente executar o programa para ver que funciona. Para faz-lo funcionar podemos utilizar o men "run" ou diretamente mediante os cones da barra de ferramentas.

Ao executar o "run" um assistente nos dar para escolher o tipo de execuo que queremos para nosso cdigo em Java. Simplesmente escolheremos "Java Application" no menu com dois cliques e nos criar um "apndice" de configurao de execuo para nosso cdigo em concreto, como podemos ver:

princpio e sem mais detalhes clicamos em "Run" e veremos os resultados:

Como podemos comprovar, abaixo h uma pequena pestana que pe "console". Essa pestana nos mostra uma consola que faz as vezes da linha de comandos desde a que executamos nosso programa de Java no primeiro exemplo. Portanto nesse espao no qual podemos ver a sada do programa: "Ola Mundo". Isto tudo por agora. J temos um ambiente completo para fazer nossos pequenos desenvolvimentos em Java e j o provamos. A partir de aqui voc ter vrias opes para continuar: Se desconhece ou quiser lembrar bases sobre a Programao Orientada a objetos, consulte este manual. Se quiser ter conhecimentos bsicos sobre a sintaxe e comportamento bsico da linguagem Java, consulte este manual. Para passar diretamente ao consulte nossos tutoriais de Java na seo de tutoriais deste site.

Artigo por Victorino Blanco Gonzlez

Manual de Java: http://www.criarweb.com/java/ Os manuais de CriarWeb.com tm copyright dos autores. No reproduzir sem autorizao.

Manuais e recursos para desenvolvimento web www.criarweb.com

Introduo linguagem JAVA


1. Introduo: Java tem como todos as linguagens de programao suas prprias caractersticas para descrever algoritmos, ou seja, seus prprios fundamentos da linguagem. Este manual no pretende ser uma descrio exaustiva de todos os modos em que podemos nos "expressar" nesta linguagem e sim, uma base para poder ir criando nossos pequenos programas. Acredito que seja muito mais til comear a programar visto que se aprendem melhor estas coisas quando temos que resolver algum problema durante nosso trabalho. Para introduzir simplesmente destacar que Java tem uma sintaxe muito parecida a de C++ portanto os programadores que venham deste tipo de linguagem se sentiro muito cmodos nela. 2. Comentrios: Existem trs tipos de comentrios em Java: // Este um comentrio de uma s linha /* Este um comentrio de uma ou mais linhas */ /** Este um comentrio de documentao */ 3. Identificadores: Um identificador um "nome" que nos permite dirigirmos especificamente a uma das entidades prprias da linguagem, ou seja, so os nomes que podemos colocar aos nossos/as variveis, mtodos, classes, interfaces e objetos. A nica restrio na formao de identificadores que tm que comear por letra, sublinhado ou pelo signo '$', podendo seguir depois letras ou nmeros. Temos que ter em conta que em Java como em muitas outras linguagens de programao se distinguem as maisculas e as minsculas. H uma srie de normas muito recomendveis para criar identificadores em Java: Em Java habitual escrever todos os identificadores em minscula tendo em conta as seguintes excees: 1. Se em um identificador queremos incluir um nome composto, coloca-se o primeiro nome inteiro em minscula e o resto com a primeira letra em maiscula e o resto em minscula. Por exemplo: minhaNovaVariavel = 3; 2. Os identificadores de classes e interfaces sempre comeam em maiscula seguindo a anterior norma no caso de se tratar de um nome composto. Por exemplo: MinhaNovaClasse(); 3. Os nomes de variveis finais ( as mais habitualmente chamadas "constantes") se escrevem integramente em maiscula. Por exemplo: "PI"

Manual de Java: http://www.criarweb.com/java/ Os manuais de CriarWeb.com tm copyright dos autores. No reproduzir sem autorizao.

Manuais e recursos para desenvolvimento web www.criarweb.com

Outra restrio muito importante e evidente na hora de escolher identificador por exemplo para uma varivel no coincidir com certas palavras restringidas que tem a linguagem, estas so:
abstract continue for new switch boolean default goto null synchronized break do if package this byte double implements private threadsafe byvalue else import protected throw case extends instanceof public transient catch false int return true char final interface short try class finally long static void const float native super while

Artigo por Victorino Blanco Gonzlez

Tipos primitivos e variveis em Java


Continuamos nossa introduo linguagem Java comentando os tipos primitivos e as variveis. 4. Tipos Primitivos: Como tipos primitivos entendemos aqueles tipos de informao mais usuais e bsicos. So os habituais de outras linguagens de programao. Descreveremos algum dado para ter em conta em cada tipo. Boolean: No um valor numrico, s admite os valores true ou false. Char: Usa o cdigo UNICODE e ocupa cada caractere 16 bits. Inteiros: Diferem nas precises e podem ser positivos ou negativos. Byte: 1 byte. Short: 2 bytes. Int: 4 bytes. Long: 8 bytes. Reais em ponto flutuante: igual que os inteiros tambm diferem nas precises e podem ser positivos ou negativos. Float: 4 bytes. Double: 8 bytes.

5. Variveis: Agora que temos as peas necessrias ( identificadores e tipos ) podemos definir variveis em Java. Uma varivel referenciar sempre a um tipo primitivo de Java ou a qualquer outro objeto criado em nosso programa. Vejamos algumas declaraes:
Int a ; // declarao de uma varivel 'a' //iniciada a 0 (valor por padro). Int b = 8; // declarao de uma varivel 'b' iniciada a 8. NomeClasse referencia; // declarao de uma varivel 'referencia' preparada //para levar um objeto da classe 'NomeClasse'. NomeClasse referencia2; // o mesmo que na varivel anterior. Referencia = new NomeClasse; // se cria um novo objeto da classe //'NomeClasse', e atribuda varivel //'Referencia'

Manual de Java: http://www.criarweb.com/java/ Os manuais de CriarWeb.com tm copyright dos autores. No reproduzir sem autorizao.

Manuais e recursos para desenvolvimento web www.criarweb.com

Referencia2 = referencia; // Agora tambm 'referencia2' tem o mesmo // objeto a seu cargo que 'referencia'

Uma vez tenhamos um pouco de idia de como declarar variveis em Java, temos que ter em conta desde que sites de nosso programa podemos acessa-las, o que chamamos de mbito das variveis. Basicamente a norma que a varivel tenha validade dentro do bloco fechado entre chaves onde foi declarada, j seja dentro de uma funo ou de, por exemplo, uma sentena 'if'. Vejamos um exemplo com um pequeno programa em Java.
public class AmbitoVariaveis { public static void main(String[] args) { if (true) { int y=5; } System.out.println(y); } }

Se tentarmos executar este cdigo o compilador nos dar um erro dizendo que a varivel no est definida visto que a declaramos em um bloco diferente de onde pretendamos utiliza-la. Existem mais normas de mbito com respeito s variveis membros de uma classe. Para acessa-las depende se na classe est declarada como 'public' ou como 'private'. As variveis declaradas em uma classe como 'public' se acessam diretamente atravs de 'NomeClase.nomeVariavel'. No caso de uma varivel 'private' s podemos utiliza-la mediante os mtodos dessa classe. Por outro lado atravs da declarao de qualquer funo prpria de uma classe podemos acessar s variveis internas dessa classe diretamente. J incluiremos mais normas de mbito quando vejamos o conceito de herana nos seguintes captulos da programao em Java. Este tutorial acaba com o seguinte ponto no qual vemos os operadores. Artigo por Victorino Blanco Gonzlez

Operadores em Java
Os operadores so muito parecidos aos de C++, j lhe advertiremos em seu momento. Operadores Aritmticos: Os habituais Soma + . Subtrao - . Multiplicao * . Diviso / . Resto da Diviso % .

Operadores de Atribuio: O principal '=' mas existem mais operadores de atribuio com diferentes funes que explicamos brevemente agora.
Manual de Java: http://www.criarweb.com/java/ Os manuais de CriarWeb.com tm copyright dos autores. No reproduzir sem autorizao. 9

Manuais e recursos para desenvolvimento web www.criarweb.com

'+=' : op1 += op2 op1 = op1 + op2 '-=' : op1 -= op2 op1 = op1 - op2 '*=' : op1 *= op2 op1 = op1 * op2 '/=' : op1 /= op2 op1 = op1 / op2 '%=' : op1 %= op2 op1 = op1 % op2

Operadores Unrios: O mais (+) e o menos (-). Para mudar o sinal do operando. Operador Instanceof: Permite-nos saber se um objeto pertence a uma classe ou no. NomeObjeto instanceof NomeClasse Operadores de Incremento e Decremento: So os operadores que nos permitem incrementar as variveis em uma unidade. Podem ser usados diante ou atrs da varivel dependendo do que quisermos, ou seja, se quisermos que se incremente ou vice-versa antes de utilizar ou o contrrio. '++' '--'

Operadores de Comparao: Permitem comparar variveis segundo a relao de igualdade/desigualdade o relao maior/menor. Devolvem sempre um valor booleano. '>': Maior que '<': Menor que '==': Iguais '=': Diferentes '>=': Maior ou igual que '<=': Menor ou igual que '&&' : devolve true se ambos operandos forem true. '||' : devolve true se algum dos operandos for true. '!' : Nega o operando que se passa. '&' : devolve true se ambos operandos forem true, avaliando ambos. '|' : devolve true se um dos operandos for true, avaliando ambos. Por Exemplo: System.out.println("O total "+ result +"unidades");

Operadores Lgicos: Permite-nos construir expresses lgicas.

Operador de concatenao com cadeia de caracteres '+': Operadores que atuam a nvel de bits: So muito menos utilizados, por isso os explicamos mais por alto. '>>': deslocamento direita dos bits do operando '<<': deslocamento esquerda dos bits do operando '&': operador and a nvel de bit. '|': operador or a nvel de bit

Artigo por Victorino Blanco Gonzlez

Estruturas de controle de bifurcao em Java


Trata-se das mesmas estruturas que podem ser encontradas em qualquer outra linguagem, se voc j sabe programar tenha em conta que o nico que necessitar aprender ser a sintaxe e
Manual de Java: http://www.criarweb.com/java/ Os manuais de CriarWeb.com tm copyright dos autores. No reproduzir sem autorizao. 10

Manuais e recursos para desenvolvimento web www.criarweb.com

isso se consegue muito melhor programando, portanto pode passar por alto este ponto. Bifurcaes: Permitem executar cdigo em funo de uma expresso avaliada Bifurcaes if: Tm as seguintes possibilidades em sua sintaxe: if (ExpressaoBooleana){conjuntoDeSentencas} if (ExpressaoBooleana) {conjuntoDeSentencas} else {conjuntoAlternativo} if (ExpressaoBooleana) {conjuntoDeSentencas} else if {conjuntoAlternativo} else if {conjuntoAlternativo2} Exemplos:
if (i == 5){ System.out.println(" i vale 5 ");} else {System.out.println("i nao vale 5");} if (i == 5){ System.out.println(" i vale 5 ");} else if (i < 5){System.out.println("i eh menor que 5");} else if (i > 5){System.out.println("i eh maior que 5");}

Bifurcaes switch So as que permitem realizar vrias aes diferentes dependendo do estado de uma varivel. Switch (Expressao){ Case valor1: conjuntoDeSentencas; break; Case valor2: SentencasAlternativas; break; Case valor3: SentencasAlternativas2; break; Case valor4: SentencasAlternativas3; break; } A sentena 'break' atrs de cada opo de case serve para que no avalie o resto de opes e sim que saia diretamente do 'Switch', por isso, dependendo do que quiser fazer, voc colocar ou no. Exemplos:
switch (i) { case '1': System.out.println( "i contem um 1"); case '2': System.out.println( "i contem um 2"); case '3': System.out.println( "i contem um 3"); }

Artigo por Victorino Blanco Gonzlez


Manual de Java: http://www.criarweb.com/java/ Os manuais de CriarWeb.com tm copyright dos autores. No reproduzir sem autorizao. 11

Manuais e recursos para desenvolvimento web www.criarweb.com

Estruturas de controle tipo loop em Java


Os loops so utilizados para executar um conjunto de instrues vrias vezes baseando-se sempre em uma condio que decidir se continua repetindo ou no. Vejamos os tipos que existem. Loop While while (expressao) {sentencas} As instrues dentro das chaves se executam enquanto a expresso for verdadeira.
i=5; while ( i > 0 ) {i --;} // as chaves aqui podiam ter sido omitidas, visto // que so existe uma sentenca. System.out.println("Agora i vale 0");

Loop For um loop mais "fixo", permite executar o conjunto de sentenas um nmero determinado de vezes fixado ao princpio do loop e funciona, portanto como um contador. Sua expresso geral seria como a que segue: for (iniciacao, expressaoBooleana, incremento) {conjuntoDeSentencas;}
for (int i= 0; i <10; i++){ System.out.println("o valor de i eh: " + i); }

Este exemplo nos mostraria pela tela dez linhas nos dizendo o valor crescente de 'i' de zero a nove. Loop do while igual ao loop while anteriormente visto, s que agora se avalia a expresso ao final do loop, portanto esse conjunto de sentenas se executa pelo menos uma vez:
i=5; do {i --;} // as chaves aqui podem ser omitidas visto while ( i > 0 ) // que so existe uma sentenca.

Este exemplo similar ao anterior para o loop while se diferencia no que executa uma vez mais as sentenas em seu corpo visto que comprova a condio posteriormente. Sentenas Break, Continue e Return Antes falamos da sentena Break com as bifurcaes switch. Pois bem, esta sentena tem um valor mais amplo. A sentena break nos permite sairmos do bloco de sentenas (fechado entre chaves) ou do loop que estamos executando, sem executar as sentenas que restam para o final ou as restantes repeties do loop. Por exemplo:
i=5;

Manual de Java: http://www.criarweb.com/java/ Os manuais de CriarWeb.com tm copyright dos autores. No reproduzir sem autorizao.

12

Manuais e recursos para desenvolvimento web www.criarweb.com

do{ i --; if (i == 3) break; } while ( i > 0 ) // Neste exemplo quando i tiver o valor 3 // se abandonar o loop.

A sentena Continue s vlida para loops, serve para no executar as sentenas que restam para a finalizao de uma repetio desse loop, continuando depois com as seguintes repeties do loop. Por exemplo:
i=5; do{ if (i == 3) continue; i --; }while ( i > 0 ) // Neste exemplo quando i tiver o valor 3 // se abandonar a repetio e portanto o // loop no ter fim visto que no se // executaria a sentena de decremento.

Tanto a sentena continue como break podem ser utilizadas com etiquetas para poder discriminar os loops que querem afetar no caso de que se encontre um loop aninhado. Por exemplo:
Loop1: for (int i=0; i<10; i++){ loop2: for (int j=0; i<10; j++){ if (j==5) {break loop2;} } } // quando j chega a 5 o loop2 deixa de // executar-se at a seguinte repeticao // dol bloco1

Por ltimo vemos a sentena return. Esta sentena nos permite finalizar tambm um conjunto de sentenas, com a peculiaridade esta vez de que tambm finaliza o mtodo ou funo no qual se encontre. No caso de que queiramos devolver um valor desde essa funo ou mtodo, devemos coloca-lo a seguir de return. Por exemplo:
void funcaoExemplo(){ int i=0; while (i < 100){ //esta absurda funcao nos devolve i++; //ao chamar o valor 100 como } //podemos comprovar return i; }

Bloque Try - Catch - Finally Trata-se de umas sentenas de controle relacionadas com o tratamento de excees, no tem nada a ver com as estruturas de controle de loop, vistas nesse artigo, salvo porque tambm uma estrutura de controle. Ser comentada a seguir, embora seja vista com exemplos mais adiante. O tratamento de excees se utiliza para detectar erros quando se executam nossos programas e trata-los do modo que ns quisermos. Os erros caados por um sistema de tratamento de excees no bloqueiam o programa e o manejo de excees nos permite fazer coisas quando esses erros ocorrem. Por agora s bom saber que existem, j as veremos em outro momento.

Manual de Java: http://www.criarweb.com/java/ Os manuais de CriarWeb.com tm copyright dos autores. No reproduzir sem autorizao.

13

Manuais e recursos para desenvolvimento web www.criarweb.com

Artigo por Victorino Blanco Gonzlez

Linguagem Java II
Vamos tentar entender como funciona um programa em Java para poder comear a programar posteriormente. Tentarei tambm explicar algo sobre os conceitos bsicos da Programao orientada a objetos, enquanto avanamos. De qualquer forma, lhes recomendo o artigo sobre este tema que j temos publicado em nossa pgina. Certamente futuramente ampliaremos os contedos sobre a programao orientada a objetos dentro de nossa web pela importncia que esta possui. Vamos adiante. Estrutura bsica de um programa em Java Em Java, como em qualquer outra linguagem orientada a objetos, abandonamos o modo de entender um programa que utilizvamos anteriormente para aproximarmos a um modo mais prximo da "vida real". Os programas agora estaro divididos em classes. Uma classe em si pode entender como um programa independente, tem seus prprios dados e tambm maneja esses dados "do seu modo". Podemos ver a relao com a vida real no seguinte comentrio: Imaginemos que duas classes tal como explicamos anteriormente so a "classe mecnico" e a "classe padeiro". Cada uma dessas classes tem suas prprias ferramentas e suas prprias tarefas, por exemplo, o padeiro tem a "farinha" e uma de suas tarefas "amassar", enquanto que o mecnico tem "bugias" e uma de suas tarefas "limpar bugias". O importante de tudo isto que cada um faz muito bem sua tarefa, porm no faz sentido "levar o carro padaria da esquina" nem "pedir um pozinho junto com uma troca de leo". Vamos estudar umas pequenas classes que nos serviro no futuro para implementar um exerccio um pouco mais complicado. Estas classes so a classe "ficha" e a classe "tabuleiro" que nos serviro para implementar com o tempo um jogo das "quatro em linha".
public class Fichas { String color; public Fichas(String c){color=c;} public String dameColor(){return(color);} }

Esta vai a ser a classe ficha. Vejamos um pouco: Esta classe tem uma varivel "cor" que um String. O tipo String no um tipo primitivo em Java, uma classe que est dentro do API de Java, mas concretamente dentro do pacote "Java.lang" e que ademais sempre se inclui por padro em cada programa Java que faamos. Portanto, o que estamos fazendo na segunda linha de nosso programa declarar um objeto sem valor da classe String. A terceira e a quarta linha so dois mtodos da classe "Fichas" que estamos definindo. O primeiro mtodo um construtor. Um construtor um mtodo que se chama coma sentena "new", ou seja, quando algum quiser criar um objeto e que nos define sob condies se cria

Manual de Java: http://www.criarweb.com/java/ Os manuais de CriarWeb.com tm copyright dos autores. No reproduzir sem autorizao.

14

Manuais e recursos para desenvolvimento web www.criarweb.com

esse objeto, j se entender melhor. Neste caso para que algum que quiser criar uma ficha tem que passar um objeto "String" como parmetro e obter em troca um objeto da classe "Fichas" da cor que solicitou. O segundo mtodo nos devolve um objeto "String" com o valor da cor que tem o objeto ficha nesse momento.
public class Tabuleiro { Fichas estadoTabuleiro[][]; public Tabuleiro(){estadoTabuleiro=new Fichas [6][7];}; public boolean verSiLlena(int indice){ return(estadoTabuleiro[7][indice]==null);}; }

Bom, esta segunda classe que estudamos tem tambm um objeto interno chamado "estadoTabuleiro" que neste caso um "array" cujas posies so da classe anteriormente declarada "Fichas". Tambm temos um "construtor" para o objeto "estadoTabuleiro" que cria esse "array" com as dimenses que queremos. E neste caso h uma funo que nos diz se a coluna pela qual nos interessamos co o parmetro de entrada "ndice" est cheia. Destes dois exemplos de classes ainda nos faltam alguns conceitos para aprender, como por exemplo o do "construtor". Mas isso veremos detalhadamente mais adiante. Artigo por Victorino Blanco Gonzlez

Classes em Java
Como comentamos anteriormente no Manual de Java, as classes marcam a estrutura bsica de um programa tanto em Java como na programao orientada a objetos em geral. Uma classe o produto de enfocar a programao aos dados mais que as funes. Portanto, uma classe uma coleo de dados e, alm disso, para operar com eles uma srie de funes prprias da classe. Vejamos por exemplo, a classe "Fichas" definida anteriormente, seu nico dado "a cor" e a nica operao que permite saber a cor da ficha em qualquer momento. Isso permite um acesso restritivo aos dados segundo a funo dos mesmos. Neste caso a classe assim baseando-se na prpria vida: No acredito que ningum tenha mudado a cor de uma ficha jogando "quatro em linha" e no caso positivo no teria muito boas intenes ao faze-lo. Alm deste mtodo bsico de proteo dos dados, Java permite alguns mais que veremos agora. Quando declaramos uma classe o primeiro que colocamos o cabealho:
public class Fichas { (corpo da classe) }

A primeira palavra nos proporciona a possibilidade de dar permisses de acessos a nossa

Manual de Java: http://www.criarweb.com/java/ Os manuais de CriarWeb.com tm copyright dos autores. No reproduzir sem autorizao.

15

Manuais e recursos para desenvolvimento web www.criarweb.com

classe, as permisses so as seguintes: "Public": Uma classe "public" acessvel desde qualquer outra classe, no obstante para que isto acontea deve ser primeiro acessvel o "package" dessa classe "public". Para que um "package" seja acessvel deve de estar no diretrio que assinala a varivel "CLASSPATH" que definimos ao instalar nosso ambiente Java e claro, ter permisso de leitura nesse diretrio. "Package": Usar este identificador no cabealho da classe opcional, pois a opo por padro em java, ou seja, se escrevermos:

class Fichas {(Corpo da classe)}

o mesmo que se escrevermos:


package class Fichas {(Corpo da classe)}

As classes "package" ( que podemos entender como as que no so "public" ) so acessveis somente pelo seu prprio package. Isto relativo acessibilidade das classes. Mais conceitos relativos acessibilidade fazem referncia s variveis internas de uma classe que j comentamos em um captulo anterior, e a seus mtodos. Quanto ao nome da classe consideraremos vrias coisas. Deve obedecer ao convnio de nomes de Java e coincidir com o nome do arquivo ".java" no qual se salvar a classe. O normal que cada classe v includa em um nico arquivo, porm claro, pode nos interessar por algum motivo colocar vrias classes em um nico arquivo. Neste caso s pode haver uma classe public que a que dar o nome a tal arquivo. Neste caso de que no houvesse uma classe public o compilador entender que a classe "principal" desse arquivo a que concorda com o nome do mesmo, portanto evidentemente duas classes com um mesmo nome no so permitidos em um mesmo arquivo. Por ltimo, para explicar a estrutura de uma classe falarei sobre os elementos habituais na definio de seu corpo. Primeiro costuma-se declarar, pelo menos, as variveis internas dessa classe e posteriormente se definem os construtores e os mtodos que ir dispor a classe. Entenderemos melhor isso mais adiante. Na definio de construtores e mtodos temos que ter em conta um novo conceito da programao orientada a objetos. A sobrecarga. A sobrecarga consiste em poder ter vrios mtodos ou construtores com o mesmo nome dentro de uma mesma classe e que no faam as mesmas coisas. Isto se consegue de uma maneira muito simples, diferenciam-se entre eles mediante o nmero e tipo de parmetros que recebem. Vejamos um exemplo:
/*temos dois mtodos que podem, por exemplo, obter a rea de uma figura geomtrica em concreto, poderiam ser:*/ float obterAreaCirculo(Circulo ci){ /* ... */ } float obterAreaQuadrado(Quadrado qu){

Manual de Java: http://www.criarweb.com/java/ Os manuais de CriarWeb.com tm copyright dos autores. No reproduzir sem autorizao.

16

Manuais e recursos para desenvolvimento web www.criarweb.com

/* ... */ } /*em Java isto pode se abreviar tendo dois mtodos sobrecarregados, por exemplo: */ float obterArea(Circulo ci){ /* ... */ } float obterArea(Quadrado qu){ /* ... */ } /*Na hora de executar o mtodo obterArea se utilizar o que corresponder ao parmetro que for passado pelo cabealho*/

Artigo por Victorino Blanco Gonzlez

Organizao das classes e uso de packages


Efetivamente necessitaremos organizar nossas classes em algum momento porque nosso desenvolvimento pode ir crescendo, e ter um acmulo de classes todas juntas em um diretrio, sem nenhum tipo de organizao fsica nem lgica, no nos ajudar muito. Java nos permite com os "Packages" evitar esta situao de um modo bastante elegante e ordenado. Um "Package" basicamente um agrupamento de classe, vemos por exemplo, que a verso 1.2 de Java inclui um total de 59 "Packages" para organizar todo seu API. Qualquer grupo de classes pode se organizar dentro de um "package" porm, evidentemente o mais normal que voc organize as suas classes por algum motivo. As classes costumam se organizar segundo a relao entre elas. Por exemplo, se tivssemos um grupo de classes que permitissem fazer uma ordenao de elementos em um array poderamos organiza-las deste modo:
Quicksort.class; // Classe para ordenar arrays com o mtodo quicksort Bolha.class; // Classe para ordenar arrays com o mtodo da bolha Selecao.class; // Classe para ordenar arrays com o mtodo de seleo Insercao.class; // Classe para ordenar arrays com o mtodo de insero direta /* Podemos englobar estas classes em um package visto que todas esto relacionadas em sua obrigao. Criaremos portanto o "package ordenaes" para que possamos acessa-las deste modo: */ ordenacao.Quicksort.class; // Exemplo acesso a quicksort no package ordenao /* Igualmente poderamos ter tambm classes para a busca de um elemento em um array em tal caso repetiramos o processo e por exemplo, teramos o "package tratamentoArrays" deste modo: */ tratamentoArrays.ordenacao.Quicksort.class; // Exemplo acesso a quicksort dentro do // package ordenacao que por sua vez est // dentro do package tratamentoArrays.

O uso de "Packages" no s nos permite organizar nossas classes, como tambm nos permite diferenciar classes que sendo distintas tenham que ter o mesmo nome, ou seja, ajuda a Java com a resoluo de nomes. Tambm como vimos por alto anteriormente nos permite certas normas para controlar acesso a classes.
Manual de Java: http://www.criarweb.com/java/ Os manuais de CriarWeb.com tm copyright dos autores. No reproduzir sem autorizao. 17

Manuais e recursos para desenvolvimento web www.criarweb.com

Vejamos agora como utilizar os "packages" para nossas classes. O primeiro que temos que ter em conta que todas as classes que vo pertencer a um mesmo "package" tm que estar em um mesmo diretrio que deve coincidir em nome com o nome do "package". Vemos que portanto, o nome completo de uma classe de um "package" equivale a sua rota desde o diretrio que tomemos de base para nossas classes. O diretrio de base para nossas classes o definido pela varivel de ambiente CLASSPATH que introduzimos no segundo captulo deste manual. Vejamos o exemplo:
tratamentoArrays.ordenacao.Quicksort.class /* Equivale ao acesso a classe que se encontra no diretorio: $CLASSPATH/tratamentoArrays/ordenacao/Quicksort.class */

O convnio de nomes de Java estabelece tambm que os nomes dos "packages" comecem por minsculas. Em segundo lugar para utilizar os "packages" em nossas classes temos que incluir no incio do arquivo da classe (antes de qualquer outra sentena) a linha:
Package nomeDoPackage;

Por ltimo vejamos a sentena "import". "import" permite importar um "package" a nossa classe Java. Isto nos permite acessar (no caso de que sejam acessveis) sem usar todo o nome do "package" a qualquer classe dentro dele. Vejamos no seguinte exemplo:
Import tratamentoArrays.ordenacao.*; //Importamos todas as classes //do "Package" de ordenao de //arrays que tnhamos organizado. /*tiramos linhas de cdigo em Java at que... */ Quicksort arrayQuick= new Quicksort(); //... Em qualquer momento de nossa classe // podemos fazer uso da classe Quicksort sem // utilizar toda a rota do package.

Tambm h que ter em conta que importando um "package" no importamos todos seus "subpackages" e sim somente todas as classes desse "package". Tambm podemos simplesmente importar somente uma classe dentro desse "package" colocando ao invs de um asterisco o nome da classe a importar. Para acabar com este ponto queria fazer mais um comentrio sobre API de Java. J disse que as classes do API de Java esto organizadas em "packages" segundo sua funo. Existem "packages" preparados para acometer as mais variadas tarefas. um dever do leitor se informar de que "packages" lhe interessam em seu desenvolvimento e do funcionamento das classes includas nestes. Ns veremos certos "packages" de uso habitual durante o manual. Como j foi comentado, em Java no se comea desde zero, temos um conjunto de classes que podemos incluir em nosso programa sem a necessidade de importar nenhum "package". Essas classes so as que pertencem ao "package" Java.lang. este "package" inclui as classes bsicas de Java como por exemplo a classe "Array" que utilizaremos muito habitualmente. Artigo por Victorino Blanco Gonzlez

Manual de Java: http://www.criarweb.com/java/ Os manuais de CriarWeb.com tm copyright dos autores. No reproduzir sem autorizao.

18

Manuais e recursos para desenvolvimento web www.criarweb.com

As classes em funcionamento
Como dita o ttulo deste ponto um objeto precisamente isso: "Uma classe em movimento". Podemos ver a relao entre classe e objeto deste modo. Suponhamos por exemplo uma classe chamada "Mamfero". Como na "vida real" voc pode encontrar pela rua com "Pessoas", "Cachorros", "Gatos" ... que evidentemente pertencem a essa classe "Mamfero", mas voc no vai encontrar com um "Mamfero" por si s. Mais ou menos essa a relao entre classe e objeto. Uma classe uma especificao de como deve ser um objeto para pertencer a essa classe e por conseguinte, um objeto um exemplar individual de uma classe. Tomando como exemplo nossa classe "Fichas" vemos que todas as fichas tm que ter uma cor como caracterstica que a defina. Ou seja, nossos objetos "ficha" sero fichas brancas, pretas, etc. Na hora de "agir" portanto ser feito sobre um objeto em concreto. Em um objeto pode se acessar a seus mtodos e s variveis membros que tiver, sempre claro que sejam ambos declarados na classe como acessveis. A acessibilidade para mtodos e variveis depende em primeira instncia da acessibilidade classe a qual pertencem. Se a classe for acessvel ento depende em segunda instncia destas normas: Acessibilidade de variveis e mtodos: depende dos seguintes modificadores de acesso que se coloca (ou no) diante da varivel em sua declarao ou do mtodo em sua definio. "public": D acessibilidade completa varivel, pode-se ver desde a prpria classe, dentro e fora do mesmo "package" e em qualquer "subclasse" da classe na que se declara, estando no mesmo ou em diferente "package". "protected": Pode-se acessar desde a prpria classe, desde o mesmo "package" e desde qualquer "subclasse", porm no se pode ver desde uma classe de outro "package". "private": S se pode acessar desde a prpria classe. "package": a opo por padro (como se no fosse colocado nada). Proporciona acessibilidade desde o prprio "package" e portanto, logicamente desde a prpria classe e ademais desde qualquer subclasse que esteja dentro do mesmo "package".

Uma vez tendo claras as normas sobre a acessibilidade em Java, veremos alguns exemplos de utilizao dos objetos em Java. Artigo por Victorino Blanco Gonzlez

Utilizao dos objetos em Java


O primeiro que h que fazer para utilizar um objeto t-lo, no ? Portanto, vamos entender primeiro como se criam os objetos para depois utiliza-los. Instanciao de objetos: Para instanciar um objeto o mtodo que se utiliza "new". "New" cria um objeto da classe que
Manual de Java: http://www.criarweb.com/java/ Os manuais de CriarWeb.com tm copyright dos autores. No reproduzir sem autorizao. 19

Manuais e recursos para desenvolvimento web www.criarweb.com

lhe especificarmos, porm, antes disso temos que declarar a varivel que conter esse novo objeto. Vejamos em nossa classe Tabuleiro vista anteriormente.
Fichas estadoTabuleiro[][]; public Tabuleiro(){estadoTabuleiro=new Fichas [6][7];};

Nessas duas linhas se engloba todo o mecanismo de criao de um objeto. Na primeira linha se declara uma varivel "estadoTabuleiro" da classe "array". A classe "array" uma classe utilitria de Java que est includa em "Java.lang" e portanto, como j comentei uma vez e explicarei melhor mais adiante, se encontra disponvel desde qualquer programa em Java. princpio esta varivel est vazia, no contm nenhum objeto, porm est "preparada" para conter um objeto da classe "array". Na segunda linha desse cdigo h mais o que comentar: Trata-se da definio de um construtor simples para a classe "Tabuleiro". Quando se executa uma sentena "new" para criar um objeto de uma classe, o que realmente se faz chamar ao mtodo construtor correspondente a essa classe. Por exemplo, se executamos esta sentena:
Tabuleiro meuTabuleiro = New Tabuleiro();

Estamos chamando ao mtodo anterior:


public Tabuleiro(){estadoTabuleiro=new Fichas [6][7];};

Portanto o que conseguimos criar a varivel interna de "Tabuleiro", que chamamos "estadoTabuleiro" como um objeto "array" de dimenses 6x7 que so as dimenses de um tabuleiro de "quatro em linha". Como vemos, igual que com nossa classe tabuleiro e qualquer outra classe, tambm usamos "new" para criar o "array". Por ltimo, e como se pode compravar, para definir um construtor para nossa classe simplesmente definimos um mtodo que como peculiaridade tem o mesmo nome da classe na qual se define. Enquanto ao seu modificador de acesso o normal que seja "public", porm, pode ser tambm "private" em cujo caso s ser acessvel atravs de um mtodo "static" da mesma classe. J explicaremos este ltimo melhor, por agora simplesmente temos s que saber que existe. Passo de mensagens: Como "passo de mensagens" entende-se em programao orientada a objetos o que sempre chamamos em programao tradicional: "chamada a uma funo". No fundo se pensamos vemos basicamente que: Em primeiro lugar: Os programas "sobre o papel" so as classes. Em segundo lugar: As classes "sobre papel" se relacionam com outras classes. Por exemplo, nossa classe Ficha utiliza para definir seu parmetro "cor" classe "String" prpria de Java. Em terceiro lugar: Na "vida real", ou seja, em funcionamento, as classes mostram-se como "objetos". Como concluso: So os objetos os que colaboram e se relacionam com outros objetos, e o fazem mediante o "passo de mensagens".

Manual de Java: http://www.criarweb.com/java/ Os manuais de CriarWeb.com tm copyright dos autores. No reproduzir sem autorizao.

20

Manuais e recursos para desenvolvimento web www.criarweb.com

Para executar um mtodo de uma classe se utiliza esta sintaxe:


NomeDaClasse.nomeDoMetodo(parmetros do mtodo);

Os passos de mensagens tm uma vantagem com respeito s chamadas funo das linguagens tradicionais. A vantagem que sempre levam um parmetro implcito: O objeto ao que pertence o prprio mtodo. Veremos com um exemplo muito simples. Imaginamos um mtodo e uma funo que simplificam uma frao passada como parmetro. A diferena seria a seguinte ao utilizar tanto o mtodo como a funo. Programao tradicional:
fracao_simp = simplifica_fracao(fracao); /*fracao_simp salva o resultado de aplicar a funcao simplifica_fracao ao parametro fracao*/

Programao orientada a objetos:


ObjetoFracao.simplificaFracao(); /*este caso poderiamos entender como que simplemente decimos a fracao que se simplifique a ela mesma "como ela sabe" */

Como vemos em Programao orientada a objetos no se passa como parmetro a frao a simplificar visto que o mesmo objeto que a frao e o que por sua vez possui o mtodo para simplifica-la de acordo com seus atributos internos. Acesso s variveis internas de um objeto: Para acessar a uma varivel interna de um objeto esta tem que ser acessvel segundo as normas vistas anteriormente. No caso de que simplesmente podamos acess-la com a seguinte sintaxe:
NomeDaClasse.nomeDaVariavelInterna;

Artigo por Victorino Blanco Gonzlez

Manual de Java: http://www.criarweb.com/java/ Os manuais de CriarWeb.com tm copyright dos autores. No reproduzir sem autorizao.

21

Вам также может понравиться