Você está na página 1de 2

G GG G G GG GU UU UU UU UI II I I II IA AA AA AA A D DD D D DD DE EE E E EE E S SS S S SS SI II I I II IN NN N N NN NT TT T T TT TA AA A A AA AX XX X X XX XE EE E E EE E P PP P P PP PA AA A A AA AR RR R R RR RA AA A A AA A P PP P P PP PR RR R R RR RO OO O O OO OG GG G G GG GR RR R R RR RA AA A A AA AM MM M M MM MA AA A A AA A O OO O O OO O J JJ J J JJ JA AA A A AA AV VV V V VV VA AA A A AA A

T TT T T TT TM MM M M MM M
S SS S S SS SE EE E E EE E
Prof. MSc Edgar Modesto Amazonas Filho 2006
edgar@prof.iesam-pa.edu.br
1
1. Configurao do ambiente de desenvolvimento
Variveis de ambiente:
JAVA_HOME Diretrio em que foi instalado o JSDK
PATH Diretrio em que foi instalado o javac, java, etc. do JSDK
CLASSPATH Diretrio de classes de um determinado projeto
Exemplo de configurao via prompt de comando:
set JAVA_HOME= C:\Arquivos de programas\Java\jdk1.5.0_03
set PATH=%PATH%;%JAVA_HOME%\bin
set CLASSPATH=c:\projetos\java\src\classes
2. Compilador Java: javac
javac NomeDaClasse.java
javac -d ../destino Um.java Dois.java
javac -d ../destino *.java
javac -classpath c:\fontes -d ../destino *.java
Algumas opes (opcionais)
-d diretrio onde sero armazenadas as classes (arquivos .class) geradas
-classpath diretrios (separados por ; ou :) onde esto as classes requeridas pela
aplicao
-sourcepath diretrios onde esto as fontes
Erros comuns de compilao:
Cannot resolve symbol: compilador incapaz de localizar uma definio do
smbolo encontrado. Causas comuns:
Erro de sintaxe no nome de varivel ou mtodo
Varivel/mtodo no declarado
Classe usada no possui varivel, mtodo ou construtor
Nmero ou tipo de argumentos do mtodo ou construtor incorretos
Definio de classe no encontrada no CLASSPATH
Class Hello is public, should be declared in a file named
Hello.java: nome do arquivo tem que ser igual ao nome da classe pblica:
Nome tem que ser Hello.java, literalmente. O nome hello.java causa este erro
porque o "h" est minsculo.
Para consertar altere o nome da classe no cdigo ou no nome do arquivo para que
sejam iguais.
3. Interpretador Java: java
java NomeDaClasse
java pacote.subpacote.NomeDaClasse
java -classpath c:\classes;c:\bin;. pacote.Classe
java -cp c:\classes;c:\bin;. pacote.Classe
java -cp %CLASSPATH%;c:\mais pacote.Classe
java -cp biblioteca.jar pacote.Classe
java -jar executavel.jar
Para rodar aplicaes grficas, use javaw
javaw -jar executavel.jar
javaw -cp aplicacao.jar;gui.jar principal.Inicio
Principais opes
-cp ou
-classpath classpath novo (sobrepe varivel de ambiente)
-jar executa aplicao executvel guardada em JAR
Erros comuns de execuo:
Exception in thread "main": NoClassDefFoundError: Classe: a classe
"Classe" no foi encontrada no CLASSPATH.
O CLASSPATH no inclui todos os diretrios requeridos
O nome da classe foi digitado incorretamente ou requer pacote
Exception in thread "main": NoSuchMethodError: main: o sistema
tentou chamar main() mas no o encontrou.
A classe no tem mtodo main() (talvez no seja executvel)
Confira assinatura do main: public static void main(String[])
ArrayIndexOutOfBoundsException: programa tentou acessar vetor alm dos
limites definidos.
Erro de lgica com vetores
Aplicao pode requerer argumentos de linha de comando
NullPointerException: referncia para objeto nula
Varivel de tipo objeto foi declarada mas no inicializada
Vetor foi declarado mas no inicializado
4. Compactao de arquivos Java: jar
Para criar um arquivo compactado
jar cvf NomeDoArquivoJAR ListaDeArquivosACompactar
Para especificar todos os arquivos jar e subdiretrios de determinado diretrio
jar cvf NomeDoArquivoJAR Diretrio
Para ver o contedo de um arquivo jar
jar tvf NomeDoArquivoJAR
5. Documentao Java
Para comentrios de classe:
@author NomeDoAutor especifica o autor da classe
@version NmeroDaVerso especifica a verso da classe
@see NomeDaClasse fornece links para outras classes

Para comentrio de mtodos:
@param NomeDoParmetro Comentrios descreve os parmetros dos mtodos
@return Comentrios descreve o valor de retorno do mtodo
@exception NomeDaExceo Comentrios descreve todas as excees
lanadas pelo mtodo corrente

Para gerar documentao (HTML)
javadoc NomeDoArquivo.java
6. Comentrios
/* este um comentrio de mltiplas linhas */
// este um comentrio de nica linha
/** comentrio para gerao de Javadoc */
7. Literais
nmero Tipo int
nmerol Tipo long
0xhex Inteiro hexadecimal
0Xhex Inteiro hexadecimal
0octal Octal
nmero.nmero Tipo double
nmerof Tipo float
nmerod Tipo double
+nmero Nmero Positivo
-nmero Nmero Negativo
nmeroenmero Notao Cientfica
nmeroEnmero Notao Cientfica
caractere Caractere nico
caracteres String (Conjunto de caracteres)
String vazia
\b Backspace
\t Tabulao
\n Nova Linha
\f Alimentao de formulrio
\r Retorno do carro
\ Aspas duplas
\ Aspa nica
\\ Barra invertida
\uNNNN Caractere Unicode (NNNN est em hex)
true Booleano
false Booleano
8. Declarao de variveis
byte nomeDaVarivel; Inteiro (8 bits)
short nomeDaVarivel; Inteiro (16 bits)
int nomeDaVarivel; Inteiro (32 bits)
long nomeDaVarivel; Inteiro (64 bits)
float nomeDaVarivel; Ponto-Flutuante (32 bits)
double nomeDaVarivel; Ponto-Flutuante (64 bits)
char nomeDaVarivel; Caracteres (16 bits)
boolean nomeDaVarivel; Booleano
NomeDaClasse nomeDaVarivel; Tipo da Classe
NomeDaInterface nomeDaVarivel; Tipo da interface
tipo nomeDaVarivel, nomeDaVarive2, ...; Mltiplas Variveis
As seguintes opes esto disponveis somente para variveis de classes e de instncias
static DeclaraoDaVarivel Varivel da classe (esttica)
final DeclaraoDaVarivel Constantes
public DeclaraoDaVarivel Controle de acesso pblico
private DeclaraoDaVarivel Controle de acesso privado
protected DeclaraoDaVarivel Controle de acesso protegido
volatile DeclaraoDaVarivel Modificado de forma assncrona
transient DeclaraoDaVarivel No persistente
9. Atribuies de varivies
varivel = valor Atribuio
varivel++ Incremento ps-fixado
++varivel Incremento pr-fixado
varivel-- Decremento ps-fixado
--varivel Decremento pr-fixado
varivel += valor Adiciona e atribui
varivel -= valor Subtrai e atribui
varivel *= valor Multiplica e atribui
varivel /= valor Divide e atribui
varivel %= valor Modula e atribui
varivel &= valor AND e atribui
varivel |= valor OR e atribui
varivel ^= valor XOR e atribui
varivel <<= valor Deslocamento de bits esquerda e atribui
varivel >>= valor Deslocamento de bits direita e atribui
varivel >>>=valor Deslocamento de bits direita (preenche com
zeros) e atribui
10. Operadores
arg + arg Adio
arg arg Subtrao
arg * arg Multiplicao
arg / arg Diviso
arg % arg Mdulo
arg < arg Menor que
arg > arg Maior que
arg <= arg Menor ou igual a
arg >= arg Maior ou igual a
arg == arg Igual
arg != arg Diferente
arg && arg AND Lgico
arg || arg OR Lgico
! arg NOT Lgico
arg & arg AND
arg | arg OR
arg ^ arg XOR
arg << arg Deslocamento de bits esquerda
arg >> arg Deslocamento de bits direita
arg >>> arg Deslocamento de bits direita (preenche com zeros)
~arg Complemento
(tipo)algumaCoisa Casting
arg instanceof Classe Instncia de
cond ? OpcV : OpcF Operador ternrio (if)
11. Objetos
new NomeDaClasse() Cria uma nova instncia
new NomeDaClasse (arg,arg,...) Cria uma nova instncia com parmetros
objeto.varivel Varivel de instncia da classe
objeto.varivelDaClasse Varivel da classe (esttica)
NomeDaClasse.varivelDaClasse Varivel da classe (esttica)
objeto.mtodoDaInstancia() Mtodo da Instncia sem argumentos

G GG G G GG GU UU UU UU UI II I I II IA AA AA AA A D DD D D DD DE EE E E EE E S SS S S SS SI II I I II IN NN N N NN NT TT T T TT TA AA A A AA AX XX X X XX XE EE E E EE E P PP P P PP PA AA A A AA AR RR R R RR RA AA A A AA A P PP P P PP PR RR R R RR RO OO O O OO OG GG G G GG GR RR R R RR RA AA A A AA AM MM M M MM MA AA A A AA A O OO O O OO O J JJ J J JJ JA AA A A AA AV VV V V VV VA AA A A AA A
T TT T T TT TM MM M M MM M
S SS S S SS SE EE E E EE E
Prof. MSc Edgar Modesto Amazonas Filho 2006
edgar@prof.iesam-pa.edu.br
2
objeto.mtodoDaInstancia(arg,arg,...) Mtodo da Instncia
(com argumentos)
objeto.mtodoDaClasse() Mtodo da Classe
(sem argumentos)
objeto.mtodoDaClasse(arg,arg,arg...) Mtodo da Classe
(com argumentos)
NomeDaClasse.mtodoDaClasse() Mtodo da Classe
(sem argumentos)
NomeDaClasse.mtodoDaClasse(arg,arg,...) Mtodo da Classe
(com argumentos)
12. Arrays (Vetores e Matrizes)
tipo nomeDaVarivel[] Varivel vetor
tipo[] nomeDaVarivel Varivel vetor
new tipo[numElementos] Alocando o objeto vetor
array[indice] Acessando elemento do vetor
array.length Comprimento do vetor
tipo nomeDaVarivel[][] Varivel matriz
tipo[][] nomeDaVarivel Varivel matriz
new tipo[numLinhas][numColunas] Alocando o objeto matriz
array[indiceLinha][indiceColuna] Acessando elemento da matriz
array.length Nmero de linhas da matriz
array[i].length Nmero de colunas da matriz, para i
linha
13. Estruturas de Repeties e condicionais
if ( condio ){
instrues; Condicional Simples
}

if ( condio ){
instruesVerdade; Condicional Dupla
}
else{
instruesFalsa;
}

switch ( condioInteiraOuCaractere ) {
case valorInteiroOuCaractere :
instrues;
case valorInteiroOuCaractere :
instrues; Condicional Mltipla
...
default :
instruesOpcionaisPadro;
}

for ( inicializador ; condioDeParada ; passo ){
instrues; Lao de repetio (for)
}
while ( condioDeParada ) {
instrues; Lao de repetio (pr-condio)
}
do{
instrues; Lao de repetio (ps-condio)
} while ( condioDeParada );

break Para interromper laos ou switch
continue Para avanar laos
nomeDoRtulo: Para criar laos rotulados
14. Definies de Classes
class NomeDaClasse {
Definio de classe
}
Alguns modificadores podem ser adicionados definio da classe:
final class NomeDaClasse {
Definio de classe que no pode ser superclasse
}
abstract class NomeDaClasse {
Definio de classe que no pode ser instanciada
(abstrata)
}
public class NomeDaClasse {
Definio de classe pblica acessvel de fora do
pacote
}
class NomeDaClasse extends Superclasse {
Definio de classe que herda uma superclasse
}
class NomeDaClasse implements NomeDaInterface {
Definio de classe que implementa uma ou mais
interface
}
15. Definio de mtodos e construtores
O mtodo consiste basicamente de um tipoDeRetorno que pode ser o nome de um tipo,
de uma classe ou void.
tipoDeRetorno nomeDoMtodo() {

instrues; Mtodo bsico

}
tipoDeRetorno nomeDoMtodo( param1, param2, ...) {

instrues; Mtodo com parmetros
}
NomeDaClasse() {

instrues; Mtodo construtor

}

NomeDaClasse( param1, param2, ...) {
instrues; Mtodo construtor com parmetros
}
Antes do tipoDeRetorno podem ser utilizados os seguintes modificadores:
public Mtodo pblico acessvel sem objeto em escopo de classe e com
objeto fora do escopo da classe
private Mtodo privado acessvel sem objeto em escopo de classe e
no-acessvel fora do escopo da classe
protected Mtodo protegido acessvel sem objeto em escopo de classe (e
de suas subclasses) e no-acessvel fora do escopo da classe
static Mtodo da classe (esttico) que no precisa de objeto para ser
executado

final Mtodo que no pode ser sobrescrito em subclasses

abstract Mtodo sem implementao em classes abstratas

synchronized Mtodo para obteno de bloqueio usado em multithreading

native Mtodo que est implementado na linguagem nativa do
computador (geralmente em C) e no em Java
Recomendao: A combinao dos modificadores deve obedecer ordem:
controleDeAcesso static abstract synchronized outroModificador
final native

Em que controleDeAcesso pode ser public, protected ou private, e
outroModificador inclui volatile e transient.

16. Pacotes, Importao e Interfaces
Criao de pacote de classes:
package nomeDoPacote;

Instanciando um objeto de uma classe pertencente a um pacote de classe
nomeDoPacote.NomeDaClasse objeto;

Importao de pacotes (ou sub-pacotes) de classes:
import nomeDoPacote.*;
import nomeDoPacote.nomeDoSubPacote.*;

Importao de classe especfica de um pacote (ou sub-pacote) de classes:
import nomeDoPacote.NomeDaClasse;

Obs.:
Quando encadeadas, a instruo import deve obrigatoriamente ficar aps a instruo
package e antes da definio das classes
Por indicao da Sun Microsystem o nome do pacote deve ser o nome do domnio na
internet na ordem inversa.
Exemplo: package edu.iesam.EngenhariaDaComputacao;
Interfaces:
interface NomeDaInterface {
Definio de Interface Simples
}

interface NomeDaInterface extends OutraInterface,
OutraInterface , OutraInterface {
Definio de Interface herdando outras
interfaces
}
public interface NomeDaInterface{
Definio de Interface pblica
}
abstract interface NomeDaInterface {
Definio de Interface abstrata
}
18. Tratamento de Excees

try{
instrues;
instruesDeAquisioDeRecursos;
}
catch( UmTipoDeExceo exceo1 ){
instruesDeTratamentoDeExceo;
}
catch( UmOutroTipoDeExceo exceo2 ){
instruesDeTratamentoDeExceo;
}
finally{
instrues;
instruesDeLiberaoDeRecursos;
}
Obs.: O bloco finally opcional
Referncias:
LEMAY, L; PERKINS, C. Teach Yourself JAVA in 21 Days.1ed. Sams.net, 1996.
SINTES, T. Aprenda Programao Orientada Objetos em 21 Dias. So Paulo. Pearson
Education do Brasil, 2002.
DEITEL, H. M. & DEITEL, P. J. JAVA
TM
Como Programar. 3. ed. So Paulo: Bookman,
2003
ROCHA, H. Programao Orientada a Objetos com Java 2
TM
SE. Disponvel em:
www.argonavis.com.br
__Java SE Documentations. Disponvel em: www.java.sun.com\jse

Things should be made as simple as possible, but not any simpler
Albert Einstein

Você também pode gostar