Introdução Dicas Linguagem OO Classe Recursos Pacotes Abstratas Exceções Packages... Classes..
Java - Introdução à Linguagem
Thiago Martins (thiago@[Link]), Fabio Gagliardi Cozman
PMR2300/PMR3200
Escola Politécnica da Universidade de São Paulo
Thiago Martins, Fabio Cozman Java - Introdução à Linguagem
Introdução Dicas Linguagem OO Classe Recursos Pacotes Abstratas Exceções Packages... Classes..
Histórico
1 Início com projeto da Sun para criar software para
utilitários (1990);
2 Linguagem Oak, projetada por Gosling (1994);
3 Linguagem Java é criada para atuar na World Wide Web
(1995);
4 Versões: 1.0.2, 1.1.x, 1.2 (Java2), 1.3, 1.4...
Thiago Martins, Fabio Cozman Java - Introdução à Linguagem
Introdução Dicas Linguagem OO Classe Recursos Pacotes Abstratas Exceções Packages... Classes..
Java é
Simples, orientada a objetos, distribuída, interpretada, segura,
neutra a arquiteturas, portável, de alta performance, dá suporte
a múltiplas linhas de processamento, dinâmica. (conforme
propaganda da Sun, no Java Whitepaper, [Link])
Thiago Martins, Fabio Cozman Java - Introdução à Linguagem
Introdução Dicas Linguagem OO Classe Recursos Pacotes Abstratas Exceções Packages... Classes..
Explicando as Palavras
1 Neutra a arquiteturas, portável -> Interpretada -> De alta
performance
2 Segura
3 Simples
4 Orientada a objetos
5 Robusta
Thiago Martins, Fabio Cozman Java - Introdução à Linguagem
Introdução Dicas Linguagem OO Classe Recursos Pacotes Abstratas Exceções Packages... Classes..
Neutra a Arquiteturas
1 Source (.java) -> Compilador (javac)
2 Bytecode (.class) -> Interpretador (java)
Java é interpretada, mas de um jeito especial
Thiago Martins, Fabio Cozman Java - Introdução à Linguagem
Introdução Dicas Linguagem OO Classe Recursos Pacotes Abstratas Exceções Packages... Classes..
Java é interpretada
1 Código fonte é compilado (transformado em bytecodes) e
então interpretado pela JVM
2 Em linhas gerais:
1 Linguagens compiladas: código fonte é transformado em
código de máquina e armazenado para execução
2 Linguagens interpretadas: cada instrução é transformada
em código de máquina e executada imediatamente e
individualmente
Thiago Martins, Fabio Cozman Java - Introdução à Linguagem
Introdução Dicas Linguagem OO Classe Recursos Pacotes Abstratas Exceções Packages... Classes..
Java é Realmente Portável
1 Tipos são padronizados: byte tem 8 bits, short tem 16 bits,
int tem 32 bits, long tem 64 bits
2 Operações matemáticas são padronizadas float, double
tem representação IEEE754 NaN funciona (!)
3 Caracteres são padronizados char é caracter Unicode com
16 bits
Thiago Martins, Fabio Cozman Java - Introdução à Linguagem
Introdução Dicas Linguagem OO Classe Recursos Pacotes Abstratas Exceções Packages... Classes..
Java é Segura
1 Nenhum acesso direto à memória (ponteiros)
2 Controle sobre operações de sistema
3 Verificação de bytecodes (conceito de sandbox)
Thiago Martins, Fabio Cozman Java - Introdução à Linguagem
Introdução Dicas Linguagem OO Classe Recursos Pacotes Abstratas Exceções Packages... Classes..
Java é Simples
1 Não há controle de memória pelo programador
2 Não há: pointer, union, enum, typedef
3 Não há prototypes
4 Não há pre-processador
5 Não há sobrecarga de operadores, herança múltipla,
templates (para C++)
Thiago Martins, Fabio Cozman Java - Introdução à Linguagem
Introdução Dicas Linguagem OO Classe Recursos Pacotes Abstratas Exceções Packages... Classes..
Java é Simples e Familiar
public class Echo {
public s t a t i c void main ( S t r i n g [ ] args ) {
f o r ( i n t i = 0 ; i < args . l e n g t h ; i ++)
System . o u t . p r i n t l n ( args [ i ] ) ;
}
}
Thiago Martins, Fabio Cozman Java - Introdução à Linguagem
Introdução Dicas Linguagem OO Classe Recursos Pacotes Abstratas Exceções Packages... Classes..
Java é Robusta
1 Sistema de tipos é rígido
2 Verificação de tipos em tempo de execução:
LinkedList a;
b = (HashTable)a;
Thiago Martins, Fabio Cozman Java - Introdução à Linguagem
Introdução Dicas Linguagem OO Classe Recursos Pacotes Abstratas Exceções Packages... Classes..
Java é Realmente Robusta
1 Verificação de vetores em tempo de execução
2 Verificação de null-pointer em tempo de execução
3 Manipulação de exceções é parte da linguagem
4 Inicialização automática para qualquer variável
Thiago Martins, Fabio Cozman Java - Introdução à Linguagem
Introdução Dicas Linguagem OO Classe Recursos Pacotes Abstratas Exceções Packages... Classes..
Em Resumo, Java...
1 Simples, Robusta, Orientada a Objetos
2 Portável
3 Segura
4 e tem uma variedade de libraries: interfaces gráficas
(AWT, Swing) suporte para linhas de processamento, rede,
imagens, sons vetores, stacks, hashtables, etc
Thiago Martins, Fabio Cozman Java - Introdução à Linguagem
Introdução Dicas Linguagem OO Classe Recursos Pacotes Abstratas Exceções Packages... Classes..
Ferramentas
1 JDK:
1 appletviewer, jar, java, javac, javadoc, jdb javah, javakey,
javap, native2ascii
2 Livre
1 NetBeans
2 Eclipse
Thiago Martins, Fabio Cozman Java - Introdução à Linguagem
Introdução Dicas Linguagem OO Classe Recursos Pacotes Abstratas Exceções Packages... Classes..
Informações
1 Documentação e download em site da Oracle
2 Concentre-se em Java Standard Edition (SE), versão JDK
7 (não use beta!)
3 Tutorial (em Learning):
[Link]
Thiago Martins, Fabio Cozman Java - Introdução à Linguagem
Introdução Dicas Linguagem OO Classe Recursos Pacotes Abstratas Exceções Packages... Classes..
Linguagem
/ ∗ Classe Echo para t e s t e . ∗ /
public class Echo {
/ / Entrada : main
public s t a t i c void main ( S t r i n g [ ] args ) {
f o r ( i n t i = 0 ; i < args . l e n g t h ; i ++)
System . o u t . p r i n t l n ( args [ i ] ) ;
System . e x i t ( 0 ) ;
}
}
Thiago Martins, Fabio Cozman Java - Introdução à Linguagem
Introdução Dicas Linguagem OO Classe Recursos Pacotes Abstratas Exceções Packages... Classes..
Tipos de Dados Primitivos
boolean (valores true ou false).
char (caracteres em Unicode, usando 2 bytes).
byte, short, int, long (inteiros usando respectivamente 1, 2,
4 e 8 bytes).
float, double (reais em formato IEEE usando
respectivamente 4 e 8 bytes).
Thiago Martins, Fabio Cozman Java - Introdução à Linguagem
Introdução Dicas Linguagem OO Classe Recursos Pacotes Abstratas Exceções Packages... Classes..
Tipos de Dados Primitivos
Uma variável cujo tipo é um tipo primitivo está armazenada no
Stack do programa em execução.
Além desses tipos primitivos existem os tipos criados por
recursos de orientação a objetos. Um desses tipos é especial:
o tipo String permite o uso do operador "+” para concatenação
Ou seja,
"oi” + "pessoal” resulta na String "oi pessoal”.
Thiago Martins, Fabio Cozman Java - Introdução à Linguagem
Introdução Dicas Linguagem OO Classe Recursos Pacotes Abstratas Exceções Packages... Classes..
Fluxo de Controle
1 if, else
2 while
3 do, while
4 switch
5 for
6 break
7 continue
Thiago Martins, Fabio Cozman Java - Introdução à Linguagem
Introdução Dicas Linguagem OO Classe Recursos Pacotes Abstratas Exceções Packages... Classes..
Operadores
Aritméticos
1 Soma +
2 Subtração -
3 Multiplicação *
4 Divisão /
5 Resto da Divisão %
Thiago Martins, Fabio Cozman Java - Introdução à Linguagem
Introdução Dicas Linguagem OO Classe Recursos Pacotes Abstratas Exceções Packages... Classes..
Operadores
Atribuição
1 ’=’
2 ’+=’ : op1 += op2 equivale a op1 = op1 + op2
3 ’-=’ : op1 -= op2 equivale a op1 = op1 - op2
4 ’*=’ : op1 *= op2 equivale a op1 = op1 * op2
5 ’/=’ : op1 /= op2 equivale a op1 = op1 / op2
6 ’%’=’ : op1 %= op2 equivale a op1 = op1 % op2
Thiago Martins, Fabio Cozman Java - Introdução à Linguagem
Introdução Dicas Linguagem OO Classe Recursos Pacotes Abstratas Exceções Packages... Classes..
Operadores
Operações booleanas bit-a-bit
1 ’&’ : Operação AND bit-a-bit.
2 ’|’ : Operação OR bit-a-bit.
3 ’ˆ’ : Operação XOR (ou exclusivo) bit-a-bit.
4 ’˜’ : Operação NOT bit-a-bit.
5 ’«’ : Deslocamento à esquerda (multiplica por potências de
2).
6 ’»’ : Deslocamento à direita com sinal.
7 ’»>’ : Deslocamento à direita sem sinal.
Thiago Martins, Fabio Cozman Java - Introdução à Linguagem
Introdução Dicas Linguagem OO Classe Recursos Pacotes Abstratas Exceções Packages... Classes..
Operadores
Comparação
1 ’>’: Maior que
2 ’<’: Menor que
3 ’==’: Iguais
4 ’!=’: Diferentes
5 ’>=’: Maior ou igual que
6 ’<=’: Menor ou igual que
Thiago Martins, Fabio Cozman Java - Introdução à Linguagem
Introdução Dicas Linguagem OO Classe Recursos Pacotes Abstratas Exceções Packages... Classes..
Operadores
Lógicos
1 ’&&’ : devolve true se ambos operandos forem true.
2 ’||’ : devolve true se algum dos operandos for true
3 ’!’ : Nega o operando que se passa.
Thiago Martins, Fabio Cozman Java - Introdução à Linguagem
Introdução Dicas Linguagem OO Classe Recursos Pacotes Abstratas Exceções Packages... Classes..
Arranjos
1 Unidimensionais: int[2], Button[10], Object[122]
2 Multidimensionais: int[3][44][3]
3 Criados com new: int[] a = new int[2];
4 Não precisam ser removidos (“coleta de lixo”)
Thiago Martins, Fabio Cozman Java - Introdução à Linguagem
Introdução Dicas Linguagem OO Classe Recursos Pacotes Abstratas Exceções Packages... Classes..
Declaração e Alocação
Todo vetor deve ser declarado e então alocado: Considere a
linha de código:
int[] a= new int [10];
Temos:
int[] → tipo;
a → nome;
new → necessário para reservar memória;
[10] → tamanho.
Uma sintaxe alternativa, mais próxima da sintaxe da linguagem
C, é:
int a[]= new int [10];
Thiago Martins, Fabio Cozman Java - Introdução à Linguagem
Introdução Dicas Linguagem OO Classe Recursos Pacotes Abstratas Exceções Packages... Classes..
Exemplos: Declaração e Alocação
int b [ ] ; / / declara .
b= new i n t [ 2 0 ] ; / / a l o c a
double c [ ] [ ] = new double [ 2 ] [ 2 ] ; / / d e c l a r a e a l o c a
double d [ ] [ ] = new double [ 2 ] [ ] ; / / d e c l a r a e a l o c a
c [ 0 ] = new double [ 2 0 ] ; a l o c a
c [ 1 ] = new double [ 3 0 ] ; aloca
Thiago Martins, Fabio Cozman Java - Introdução à Linguagem
Introdução Dicas Linguagem OO Classe Recursos Pacotes Abstratas Exceções Packages... Classes..
Referências
As variáveis que denotam vetors são referências; estas
variáveis apenas guardam endereços de memória. Portanto,
se fizermos:
i n t x [ ] = new i n t [ 1 0 ] ;
temos que x guarda o endereço de um vetor com 10
elementos.
Thiago Martins, Fabio Cozman Java - Introdução à Linguagem
Introdução Dicas Linguagem OO Classe Recursos Pacotes Abstratas Exceções Packages... Classes..
length
Todo vetor a é automaticamente associado a uma variável
[Link] que retorna o tamanho do vetor. O primeiro
elemento de um vetor a tem índice 0 e o último elemento de a
tem índice [Link] - 1.
Thiago Martins, Fabio Cozman Java - Introdução à Linguagem
Introdução Dicas Linguagem OO Classe Recursos Pacotes Abstratas Exceções Packages... Classes..
Exemplos: length
a [ i ]=138;
a [ i ] [ i +1]=2.3 + x [ i ] [ i ] ;
i =a . l e n g t h ;
j =x [ 4 ] . l e n g t h ;
s=new s t r i n g [ 5 ] ;
y=s [ ( s . l e n g t h − 1 ) ] ;
Thiago Martins, Fabio Cozman Java - Introdução à Linguagem
Introdução Dicas Linguagem OO Classe Recursos Pacotes Abstratas Exceções Packages... Classes..
Exemplo 1
O seguinte exemplo inicializa um vetor bidimensional:
i n t t [ ] [ ] = new i n t [ 1 0 ] [ ] ;
f o r ( i n t i =0; i < t . l e n g t h ; i ++) {
t [ i ] =new i n t [ i + 1 ] ;
f o r ( i n t j =0; j <( i + 1 ) ; j ++)
t [ i ] [ j ]= i + j ;
}
Thiago Martins, Fabio Cozman Java - Introdução à Linguagem
Introdução Dicas Linguagem OO Classe Recursos Pacotes Abstratas Exceções Packages... Classes..
Exemplo 2
O seguinte exemplo copia o conteúdo de um vetor em outro:
i n t a [ ] = new i n t [ b . l e n g t h ] ;
f o r ( i n t i =0; i <b . l e n g t h ; i ++)
a [ i ]=b [ i ] ;
Thiago Martins, Fabio Cozman Java - Introdução à Linguagem
Introdução Dicas Linguagem OO Classe Recursos Pacotes Abstratas Exceções Packages... Classes..
Orientação a Objetos
Programas são organizados em torno de classes e objetos
public class C i r c l e {
public double x , y , r ;
public double area ( ) {
r e t u r n ( Math . PI ∗ r ∗ r ) ;
}
}
Thiago Martins, Fabio Cozman Java - Introdução à Linguagem
Introdução Dicas Linguagem OO Classe Recursos Pacotes Abstratas Exceções Packages... Classes..
Declaração e Criação de Objetos
1 Declare: Circle c;
2 Crie: c = new Circle();
3 Declare, crie e inicialize: Circle c = new Circle(1,2,3);
Thiago Martins, Fabio Cozman Java - Introdução à Linguagem
Introdução Dicas Linguagem OO Classe Recursos Pacotes Abstratas Exceções Packages... Classes..
Métodos e Construtores
1 Chamando um método: [Link]();
2 Construtor simples: public Circle ()
3 Outro construtor (sobrecarga):
public Circle(double x, double y, double r)
Thiago Martins, Fabio Cozman Java - Introdução à Linguagem
Introdução Dicas Linguagem OO Classe Recursos Pacotes Abstratas Exceções Packages... Classes..
Polimorfismo (sobrecarga)
Dois métodos tem nomes diferentes se tiverem
parâmetros de tipos diferentes.
Exemplo: read(int), read(int, int), read(double), read(char,
int, int).
Métodos com valor de retorno diferente não podem
receber o mesmo identificador.
Thiago Martins, Fabio Cozman Java - Introdução à Linguagem
Introdução Dicas Linguagem OO Classe Recursos Pacotes Abstratas Exceções Packages... Classes..
Variáveis de Classe
Variável associada à classe (não a objetos)
public class C i r c l e {
s t a t i c i n t num_circles ;
...
a = C i r c l e . num_circles ;
...
}
Exemplo: [Link]
Thiago Martins, Fabio Cozman Java - Introdução à Linguagem
Introdução Dicas Linguagem OO Classe Recursos Pacotes Abstratas Exceções Packages... Classes..
Métodos de Classe
1 Método associado à classe
2 Exemplos importantes: [Link], [Link], [Link],
[Link], etc
3 Método declarado como static: public static void
main(String args[]) public static double sqrt(double v)
Thiago Martins, Fabio Cozman Java - Introdução à Linguagem
Introdução Dicas Linguagem OO Classe Recursos Pacotes Abstratas Exceções Packages... Classes..
Hierarquias e Heranças
1 Classes podem ser estendidas
2 Objetos herdam variáveis e métodos
3 Superclasse é referida por super
4 Métodos são superpostos, variáveis não (chamada do
método é associada a implementação durante execução!)
Thiago Martins, Fabio Cozman Java - Introdução à Linguagem
Introdução Dicas Linguagem OO Classe Recursos Pacotes Abstratas Exceções Packages... Classes..
Coleta de lixo
1 Java não tem recursos na linguagem para liberar memória
2 Memória é liberada automaticamente através de um
processo denominado “coleta de lixo” (garbage collection)
3 Quando coletados, objetos podem ser finalizados pelo
método finalize()
Thiago Martins, Fabio Cozman Java - Introdução à Linguagem
Introdução Dicas Linguagem OO Classe Recursos Pacotes Abstratas Exceções Packages... Classes..
Além disso
1 Packages: grupos de classes (package)
2 Import: inclusão de classes
3 Importante: através das regras de uso de packages e
imports, Java mantem uma estrutura de nomes que
impede colisões
Thiago Martins, Fabio Cozman Java - Introdução à Linguagem
Introdução Dicas Linguagem OO Classe Recursos Pacotes Abstratas Exceções Packages... Classes..
Acesso a Objetos
1 Possíveis situações:
1 public - todas as classes
2 (package) - só no pacote
3 protected - só no pacote e subclasses
4 private - só na classe
2 Dica: construa packages pequenos para garantir
encapsulamento de dados
Thiago Martins, Fabio Cozman Java - Introdução à Linguagem
Introdução Dicas Linguagem OO Classe Recursos Pacotes Abstratas Exceções Packages... Classes..
Copiando Objetos
Para copiar referências:
Object a , b ;
a = b;
Um exemplo:
public void swap ( O b j e c t a , O b j e c t b ) {
O b j e c t temp = a ;
a = b;
b = temp ;
}
Thiago Martins, Fabio Cozman Java - Introdução à Linguagem
Introdução Dicas Linguagem OO Classe Recursos Pacotes Abstratas Exceções Packages... Classes..
Pacotes
1 Packages: grupos de classes (package)
2 Inclusão de classes e pacotes (import)
3 Através do uso de pacotes, Java mantém uma estrutura de
nomes que evita colisões.
Thiago Martins, Fabio Cozman Java - Introdução à Linguagem
Introdução Dicas Linguagem OO Classe Recursos Pacotes Abstratas Exceções Packages... Classes..
Pacotes Java
1 Java 1.0:
1 lang (automático!)
2 io, applet, awt (image, peer), net, util
2 Java > 1.0:
1 beans, math, security, text, swing, sql...
Thiago Martins, Fabio Cozman Java - Introdução à Linguagem
Introdução Dicas Linguagem OO Classe Recursos Pacotes Abstratas Exceções Packages... Classes..
Java e OO: Resumo
1 Variáveis: primitivas e de referência; Strings; locais; final.
2 Objetos: this; super; new; finalize; coleta de lixo
3 Classes: public; extends; final
4 Arrays: new; coleta de lixo
5 Métodos: this; super; construtores; sobrecarga;
superposição; public, private, protected; static; final
Thiago Martins, Fabio Cozman Java - Introdução à Linguagem
Introdução Dicas Linguagem OO Classe Recursos Pacotes Abstratas Exceções Packages... Classes..
Classes Abstratas
1 Objetivo: implementar alguma funcionalidade, mas deixar
funcionalidade para sub-classes
2 Classes abstratas não geram objetos
Thiago Martins, Fabio Cozman Java - Introdução à Linguagem
Introdução Dicas Linguagem OO Classe Recursos Pacotes Abstratas Exceções Packages... Classes..
Interfaces
1 Uma “classe abstrata” que só tem métodos abstratos e
constantes (static final) para sub-classes
2 Define a “interface” entre classes (!)
3 Uma das mais poderosas ferramentas para especificação
de software, e um substituto para herança múltipla
Thiago Martins, Fabio Cozman Java - Introdução à Linguagem
Introdução Dicas Linguagem OO Classe Recursos Pacotes Abstratas Exceções Packages... Classes..
Manipulação de Exceções
Novos termos:
1 try - uma região de código
2 catch - uma condição de exceção
3 finally - uma região de código
Além disso, um método pode throw/throws exceções
Thiago Martins, Fabio Cozman Java - Introdução à Linguagem
Introdução Dicas Linguagem OO Classe Recursos Pacotes Abstratas Exceções Packages... Classes..
Exceções são Objetos
1 Classes de exceções podem ser definidas e estendidas
2 [Link] Throwable [Link] [Link]
3 Em geral, nunca use catch para tratar um objeto Error
Thiago Martins, Fabio Cozman Java - Introdução à Linguagem
Introdução Dicas Linguagem OO Classe Recursos Pacotes Abstratas Exceções Packages... Classes..
Exceções devem ser Tratadas
1 Tratamento:
1 Uso de try e catch
2 Uso de throws
2 Java exige tratamento de toda exceção que não estenda
Error ou [Link]
Thiago Martins, Fabio Cozman Java - Introdução à Linguagem
Introdução Dicas Linguagem OO Classe Recursos Pacotes Abstratas Exceções Packages... Classes..
Blocos try-finally
1 É possível usar try e finally sem tratar exceções
2 Objetivo: garantir finalização de procedimentos (fechar
arquivos, conexões, etc), mesmo com break, continue ou
return
3 Uso de throws
Thiago Martins, Fabio Cozman Java - Introdução à Linguagem
Introdução Dicas Linguagem OO Classe Recursos Pacotes Abstratas Exceções Packages... Classes..
Pacotes Importantes
1 [Link]
2 [Link]
3 [Link]
1 ref
2 reflect
4 [Link]
5 [Link]
6 [Link]
1 acl
2 cert
3 interfaces
4 spec
Thiago Martins, Fabio Cozman Java - Introdução à Linguagem
Introdução Dicas Linguagem OO Classe Recursos Pacotes Abstratas Exceções Packages... Classes..
Pacotes Importantes
1 [Link]
2 [Link]
1 jar
2 zip
3 [Link]
Além disso temos SWING (interface gráfica), criptografia,
conectividade, bases de dados, etc.
Thiago Martins, Fabio Cozman Java - Introdução à Linguagem
Introdução Dicas Linguagem OO Classe Recursos Pacotes Abstratas Exceções Packages... Classes..
String
String S = “exemplo” + “!”;
Método toString() em todo objeto → usado para imprimir.
1 [Link]();
2 [Link](4); // de 4 ao final
3 [Link](4,6); // caracteres 4 e 5
4 [Link](3);
5 [Link]();
6 [Link]();
7 [Link]();
Thiago Martins, Fabio Cozman Java - Introdução à Linguagem
Introdução Dicas Linguagem OO Classe Recursos Pacotes Abstratas Exceções Packages... Classes..
String
1 [Link](“ab”);
2 [Link](“ab”);
3 [Link](“ab”);
1 < 0 se s < “ab00
2 = 0 se s = “ab00
3 > 0 se s > “ab00
4 [Link]();
5 [Link](“ab”);
Thiago Martins, Fabio Cozman Java - Introdução à Linguagem
Introdução Dicas Linguagem OO Classe Recursos Pacotes Abstratas Exceções Packages... Classes..
Ainda sobre Strings
1 Método toString() aplicado a todo objeto: String s =
[Link]();
2 Classe StringBuffer: – capacity, length, charAt, append,
insert, reverse
3 Classe StringTokenizer (muito útil!)
4 Escapes: – \b, \t, \n, \”,\xxx...
Thiago Martins, Fabio Cozman Java - Introdução à Linguagem
Introdução Dicas Linguagem OO Classe Recursos Pacotes Abstratas Exceções Packages... Classes..
Classes “Empacotadoras”
1 Boolean Byte, Short, Integer, Long, Float, Double,
Character
2 Métodos: [Link](String s)
3 [Link], [Link].
4 [Link](int x), [Link](int x),
Integer.MAX_VALUE, Integer.MIN_VALUE.
Thiago Martins, Fabio Cozman Java - Introdução à Linguagem
Introdução Dicas Linguagem OO Classe Recursos Pacotes Abstratas Exceções Packages... Classes..
Math, System
1 [Link]/sin/tan/acos/asin/atan/exp/log/pow/
ceil/floor/round/toDegrees.
2 Note: [Link] contém BigInteger, BigDecimal.
3 System: exit, currentTimeMillis, arraycopy
4 System:
1 PrintStream out, err
2 InputStream in
Thiago Martins, Fabio Cozman Java - Introdução à Linguagem
Introdução Dicas Linguagem OO Classe Recursos Pacotes Abstratas Exceções Packages... Classes..
[Link]
1 Pacote para Entrada/Saída de dados (arquivos, teclado,
monitor)
2 Classe File: permite manipular arquivos e diretórios
(tamanhos, datas, permissões).
3 InputStream e OutputStream: ler e escrever sequências de
bytes.
4 Reader e Writer: ler e escrever sequências de caracteres.
Thiago Martins, Fabio Cozman Java - Introdução à Linguagem
Introdução Dicas Linguagem OO Classe Recursos Pacotes Abstratas Exceções Packages... Classes..
Ler do teclado
Variável [Link]:
import j a v a . i o . ∗ ;
BufferedReader b r =
new BufferedReader (new
InputStreamReader ( System . i n ) ) ;
String n;
try {
n = br . readLine ( ) ;
} catch ( IOException e ) { }
Thiago Martins, Fabio Cozman Java - Introdução à Linguagem
Introdução Dicas Linguagem OO Classe Recursos Pacotes Abstratas Exceções Packages... Classes..
Ler de arquivo
import j a v a . i o . ∗ ;
try {
BufferedReader b r =
new BufferedReader (new F i l e R e a d e r ( ’ ’ h . t x t ’ ’ ) ) ;
S t r i n g l i n e = br . readLine ( ) ;
while ( l i n e ! = n u l l ) {
System . o u t . p r i n t l n ( l i n e ) ;
l i n e = br . readLine ( ) ;
}
br . close ( ) ;
} catch ( IOException e ) { }
Thiago Martins, Fabio Cozman Java - Introdução à Linguagem
Introdução Dicas Linguagem OO Classe Recursos Pacotes Abstratas Exceções Packages... Classes..
Escrever em arquivo
Classe PrintWriter:
import j a v a . i o . ∗ ;
try {
F i l e f = new F i l e ( ’ ’ d i r ’ ’ , ’ ’ hey . t x t ’ ’ ) ;
P r i n t W r i t e r pw =
new P r i n t W r i t e r (new F i l e W r i t e r ( f ) ) ;
pw . p r i n t l n ( ’ ’HEY! F i l e w i t h ’ ’ + f . l e n g t h ( ) ) ;
pw . c l o s e ( ) ;
} catch ( IOException e ) { }
Thiago Martins, Fabio Cozman Java - Introdução à Linguagem
Introdução Dicas Linguagem OO Classe Recursos Pacotes Abstratas Exceções Packages... Classes..
Outros Métodos
Existem muitos outros métodos para:
1 ler de arquivos binários
2 ler de strings
3 ler da rede
4 ler dados comprimidos
5 ler dados criptografados
6 escrever nas mesmas condições
Thiago Martins, Fabio Cozman Java - Introdução à Linguagem
Introdução Dicas Linguagem OO Classe Recursos Pacotes Abstratas Exceções Packages... Classes..
[Link]
import j a v a . n e t . ∗ ;
import j a v a . i o . ∗ ;
public class Download {
public s t a t i c void main ( S t r i n g args [ ] ) {
String linha ;
i f ( args . l e n g t h >0) {
try {
URL u = new URL( args [ 0 ] ) ;
DataInputStream h t m l =
new DataInputStream ( u . openStream ( ) ) ;
while ( ( l i n h a = h t m l . r e a d L i n e ( ) ) ! = n u l l )
System . o u t . p r i n t l n ( l i n h a ) ;
html . close ( ) ;
} catch ( E x c e p t i o n e ) { System . e r r . p r i n t l n ( e ) ; }
}
}
Thiago Martins, Fabio Cozman Java - Introdução à Linguagem
Introdução Dicas Linguagem OO Classe Recursos Pacotes Abstratas Exceções Packages... Classes..
Collections
Até Java 1.1, tinhamos na plataforma Java:
Vector: sequência de itens com tamanho variável,
implementada com vetor;
Stack: implementação de Pilha;
Hashtable: implementação de Hashtable.
Após Java 1.1 foram introduzidas várias classes:
Thiago Martins, Fabio Cozman Java - Introdução à Linguagem