Académique Documents
Professionnel Documents
Culture Documents
Bytecode
Mquina Virtual JRE zxzxxzxzxxzxzxzx zxzxxzxzxxzxzxzx zxzxxzxzxxzxzxzx zxzxxzxzxxzxzxzx Bytecode zxzxxzxzxxzxzxzx zxzxxzxzxxzxzxzx zxzxxzxzxxzxzxzx zxzxxzxzxxzxzxzx
De tipagem esttica
Cada varivel e cada expresso possuem um tipo que conhecido em tempo de compilao Os tipos:
Fortemente tipada
Uma varivel pode receber Uma expresso pode produzir Limitam as operaes apoiadas sobre esses valores Determinar o significado das operaes
Tipos primitivos
Tipos primitivos
Tipos numricos
Tipos integrais
byte int
float
Tipo booleano
double
Tipos primitivos
Tipo byte short int long float Tamanho em bytes 1 2 4 8 4 8 1 2 Faixa Inteiro: -128 a 127 Inteiro: -32.768 a 32.767 Inteiro: -2.147.483.648 a 2.147.483.647 Inteiro: -9.223.372.036.854.775.808 a 9.223.372.036.854.775.807 Ponto flutuante: +/-3.4E-38 a +/-3.4E+38 Ponto flutuante: +/-1.7E-308 a +/-1.7E+308 true ou false Caracteres UNICODE Valor padro 0 0 0 0L 0.0f 0.0d false 'u\0000'
8
Tipos primitivos
Importante
Os valores padres so para variveis de instncias As variveis locais necessitam de valores para sua inicializao
Castings possveis
10
Variveis
Variveis de instncia
Campos no estticos So variveis cujas informaes so especficas de cada objeto de uma classe Campos estticos So variveis cujas informaes so especficas para a classe Variveis de escopo de mtodos ou de controle de fluxos Valores passados para mtodos
rogerioaraujo.wordpress.com twitter: @rgildoaraujo - rgildoaraujo@gmail.com 11
Variveis de classe
Variveis locais
Parmetros
Variveis
No podem:
Variveis
http://docs.oracle.com/javase/tutorial/java/nutsandbolts/_keyw ords.html Iniciamos normalmente os nomes de variveis com letra Convm no utilizarmos:
No incio de nomes:
Compreendido Mantido
13
Variveis
14
Operadores
Tipo Aritmtico Atribuio Relacional Igualdade Lgico Bitwise Postfix Unrio Shift aritmtico Shift lgico Operadores +, -, *, /, % =, +=, -=, *=, /=, %=, &=, ^=, |=, <<=, >>=, >>>= <, <=, >, >=, instanceof ==, != &&, || &, I, ^ var++, var-++var, --var, +var, -var, ~, ! <<, >> >>>
15
Operadores
Operadores de shift
Operador <<
Desloca bits para a esquerda Completa os espaos deixados na direita com 0 Desloca bits para a direita Completa os espaos deixados na esquerda com 0 Desloca bits para a direita Completa os espaos deixados na esquerda com o bit de sinal (bit mais significativo)
Operador >>>
Operador >>
Se o bit de sinal for 1 preenche os espaos com 1 Caso contrrio preenche os espaos com 0
16
Controle de fluxo
Estruturas condicionais
Estruturas de repetio
17
Sempre que um mtodo de alguma classe passvel de causar algum erro, ento, podemos usar o try
Tudo que estiver dentro do bloco try ser executado at que alguma exceo seja lanada
Quando uma exceo lanada, ela sempre deve ser capturada pelo bloco catch Um bloco try pode possuir vrios blocos de catch
Dependendo do nmero de excees que podem ser lanadas por uma classe ou mtodo Ele executa seu bloco de dados mesmo que uma exceo seja lanada
rogerioaraujo.wordpress.com twitter: @rgildoaraujo - rgildoaraujo@gmail.com 18
try {
// cdigo a ser executado // tratamento da exceo // cdigo a ser executado mesmo que uma exceo seja lanada
} finally {
19
Classes e objetos
Modificador Classe Subclasse Pacote Todos
Public UML Smbolo + Public Java Protected UML Smbolo # Protected Java Private UML Smbolo Private Java Package UML Smbolo ~ Default Java
20
Classes e objetos
Ordem de visibilidade na UML (do mais restrito para o mais liberal)
Private -
Package ~
Protected #
Public +
Private
Default
Protected
Public
21
Classes e objetos
Tipos enumerados
Pontos cardeais
Dias da semana
NORTE, SUL, LESTE, OESTE DOMINGO, SEGUNDA, TERCA, QUARTA, QUINTA, SEXTA, SABADO
22
Classes e objetos
Annotations
Detectar erros
Suprimir avisos
Cdigo
Arquivos XML
Classes e objetos
Annotations
Exemplo
Interfaces
24
Classes e objetos
Interfaces
No h como
Funcionam como um tipo de contrato, onde so especificados os atributos, mtodos e funes que as classes que implementem essa interface so obrigadas a implementar. Java no suporta heranas mltiplas
25
Classes e objetos
Classes abstratas
Devem conter pelo menos um mtodo abstrato No h como criar instncias delas So usada apenas para ser herdada Uma grande vantagem que fora a hierarquia para todas as sub-classes um tipo de contrato que faz com que as sub-classes contemplem as mesmas hierarquias e/ou padres
26
Classes e objetos
Modificador final
Mtodos final no podem ser sobrescritos por subclasses Classes final no podem ser ter subclasses Esttico
Polimorfismo
Dinmico
27
Classes e objetos
Polimorfismo
Esttico
Quando a classe possui mtodos com o mesmo nome, porm com argumentos diferentes
Dinmico
A deciso de qual mtodo chamar tomada em tempo de compilao, baseada nos argumentos que foram passados
28
Generics
Serve para determinar para o compilador qual tipo de classe deve ser interpretada
29
Generics
30
Generics
Java usa uma pequena conveno de nomenclatura para as letras de identificao de generics, sendo:
31
Reflection
Recuperar as classes dos objetos instanciados Examinar tipos e modificadores de classes Descobrir membros das classes Troubleshooting
32
Reflection
Object.getClass()
Obtm uma classe de objeto instanciado Class c = objeto.getClass(); Obtm uma classe:
.class
boolean buleano;
33
Reflection
Class.forName()
Obtm uma classe quando o nome totalmente qualificado de dlea est disponvel No pode ser usado para tipos primitivos Class c = Class.forName("br.com.empresa.entidades.Pessoa"); Cada classe wrappers contm um campo chamado TYPE que igual Class para o tipo primitivo sendo empacotado (wrapped) Class c = Double.TYPE; Class c = Void.TYPE;
34
Reflection
Class.getSuperclass()
Class.getClasses()
Class c = javax.swing.JButton.class.getSuperclass(); Retorna todas as classes pblicas, interfaces e enumeraes que so membros da classe, incluindo membros herdados Retorna todas as interfaces de classes e enums que so explicitamente declarados nesta classe
Class.getDeclaredClasses()
35
Reflection
Class.getEnclosingClass()
Classes annimas no vai ter uma classe declarar, mas ter uma classe inclusora Retorna a classe imediatamente envolvente (enclosing) da classe
36
Reflection
getDeclaredField()
No
getField()
No
Sim
No
getDeclaredFields()
Sim
No
Sim
getFields()
Sim
Sim
No
37
Reflection
getDeclaredMethod()
No
getMethod()
No
Sim
No
getDeclaredMethods()
Sim
No
Sim
getMethods()
Sim
Sim
No
38
Reflection
getDeclaredConstructor()
No
getConstructor()
No
No
getDeclaredConstructors()
Sim
Sim
getConstructors()
Sim
No
39
Thread
Cria-se um objeto que estende a classe Thread e sobrescreve-se o mtodo public void run() Implementa-se a interface Runnable Nova (criada) Executvel (em execuo) Bloqueado (suspensa) Encerrado (morta)
40
Thread
41