Você está na página 1de 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.
1
Manuais e recursos para desenvolvimento web
www.criarweb.com
Introduo a Java
1. Um Toque de Histria.
2. O que JAVA 2?
. !n "o#ue de $istoria:
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.
%e&er'ncia: Temos um artigo que tambm comenta o que Java e oferece algum outro dado de
interesse.
(. ) #ue * JAVA (+
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 faze-
lo 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)-nb-
3_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.
3
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.
4
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.
5
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.
6
Manuais e recursos para desenvolvimento web
www.criarweb.com
Introduo linguagem JAA
. ,ntrodu-.o:
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.
(. /omentrios:
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 */
0. ,denti&icadores:
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.
7
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
!ipos primitivos e vari"veis em Java
Continuamos nossa introduo linguagem Java comentando os tipos primitivos e as
variveis.
1. "ipos 2rimitivos:
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.
3. 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.
8
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
#peradores em Java
Os operadores so muito parecidos aos de C++, j lhe advertiremos em seu momento.
)peradores Aritm*ticos: Os habituais
Soma + .
Subtrao - .
Multiplicao * .
Diviso / .
Resto da Diviso % .
)peradores de Atribui-.o: 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
)peradores !nrios: O mais (+) e o menos (-). Para mudar o sinal do operando.
)perador ,nstanceo&: Permite-nos saber se um objeto pertence a uma classe ou no.
NomeObjeto instanceof NomeClasse
)peradores de ,ncremento e 4ecremento: 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.
'++'
'--'
)peradores de /ompara-.o: 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
)peradores 567icos: Permite-nos construir expresses lgicas.
'&&' : 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.
)perador de concatena-.o com cadeia de caracteres 898:
Por Exemplo: System.out.println("O total "+ result +"unidades");
)peradores #ue atuam a n:vel 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 bi$urcao 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.
Bi&urca-;es: Permitem executar cdigo em funo de uma expresso avaliada
Bi&urca-;es i&:
Tm as seguintes possibilidades em sua sintaxe:
if (ExpressaoBooleana){conjuntoDeSentencas}
if (ExpressaoBooleana) {conjuntoDeSentencas}
else {conjuntoAlternativo}
if (ExpressaoBooleana) {conjuntoDeSentencas}
else if {conjuntoAlternativo}
else if {conjuntoAlternativo2}
<=emplos:
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");}
Bi&urca-;es 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.
<=emplos:
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.
5oop >hile
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");
5oop ?or
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.
5oop 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.
@enten-as BreaAB /ontinue e %eturn
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;
}
Blo#ue "rC D /atch D ?inallC
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
%inguagem 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.
<strutura bsica de um pro7rama 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
&lasses 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:
E2ublicE: 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.
"2acAa7eE: 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
#rgani'ao das classes e uso de pac(ages
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 $uncionamento
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
)tili'ao dos ob*etos 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.
,nstancia-.o 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.
2asso de mensa7ens:
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.
2ro7rama-.o tradicional:
fracao_simp = simplifica_fracao(fracao);
/*fracao_simp salva o resultado
de aplicar a funcao simplifica_fracao
ao parametro fracao*/
2ro7rama-.o 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 Fs 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

Você também pode gostar