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

Tipos, Literais, Operadores

Identificadores
z

So palavras utilizadas para nomear variveis, mtodos e classes Na linguagem Java, o identificador sempre comea por letra, sublinhado(_) ou cifro ($)
z z

No podem comear por nmeros So case sensitive

Do segundo caractere em diante, pode conter qualquer seqncia de letras, dgitos, sublinhados ou cifres

Tipos, Literais, Operadores

Identificadores
z

Exemplos de identificadores vlidos:


z z z z z z

nomeAluno saldo lmpada // no recomendvel User_name // fora do padro _sys_var1 Class // no recomendvel

Java utiliza o padro Unicode (16 bits)


Tipos, Literais, Operadores 3

Palavras reservadas em Java


abstract catch do final implements long private static throw while boolean char double finally import native protected super throws enum break class else float instanceof new public switch transient byte continue extends for int return synchronized this void case default if interface package short try volatile

true, false e null no so palavras reservadas e sim literais


OBS: Todas as palavras reservadas so escritas com letras minsculas

Tipos, Literais, Operadores

Palavras reservadas
z

Modificadores de Acesso
z

private, protected, public

Modificadores de classe, mtodo e varivel


z

abstract, class, extends, final, implements, interface, native, new, static, synchronized, transient, volatile

Controle de fluxo
z

break, case, continue, default, do, else, for, if, instanceof, return, switch, while
5

Tipos, Literais, Operadores

Palavras reservadas
z

Tratamento de Erros
z

catch, finally, throw, throws, try, assert

Controle de Pacotes
z

import, package

Tipos de Dados
z

boolean, byte, char, double, float, int, long, short, void (somente retorno)

Tipos, Literais, Operadores

Palavras reservadas
z

Exemplo de cdigos que no compilam:


class Teste { public void go() { } public int break(int b) { } }

class LiteralTest { public static void main(String [] args) { int true = 100; //isto causa erro } }
Tipos, Literais, Operadores 7

Tipos de dados primitivos


z

Java, assim como Pascal, C e C++, uma linguagem fortemente tipada -- todas as variveis devem ter um tipo

Diferentemente de C e C++, os tipos primitivos em Java so portteis entre todas as plataformas

Tipos, Literais, Operadores

Tipos primitivos em Java


z z

Armazenados na pilha (acesso rpido) No so objetos. Classe 'wrapper' faz transformao, se necessrio (encapsula valor em um objeto)

Tipos, Literais, Operadores

Exemplos

Tipos, Literais, Operadores

10

Caracteres especiais

Tipos, Literais, Operadores

11

Operadores

Tipos, Literais, Operadores

12

Precedncia

Tipos, Literais, Operadores

13

Tabela de Precedncia

Tipos, Literais, Operadores

14

Atribuio

Tipos, Literais, Operadores

15

Operadores Matemticos

Tipos, Literais, Operadores

16

Incremento e Decremento

Tipos, Literais, Operadores

17

Operadores Relacionais

Tipos, Literais, Operadores

18

Operadores Lgicos

Tipos, Literais, Operadores

19

Operadores orientados a bit

Tipos, Literais, Operadores

20

Operadores de Deslocamento

Tipos, Literais, Operadores

21

Operador Ternrio (if-else)

Tipos, Literais, Operadores

22

Operador de Concatenao

Tipos, Literais, Operadores

23

instanceof

Tipos, Literais, Operadores

24

Tipos de dados

Tipos, Literais, Operadores

25

Converso de tipos primitivos

Tipos, Literais, Operadores

26

Converso de referncias

Tipos, Literais, Operadores

27

Converso de tipos primitivos


z

A linguagem Java no suporta a coero arbitrria dos tipos de variveis, exceto no caso de concatenao de strings Exemplo
z z z z

long bigval = 6; int smallval = 99L; float x = 12.414F; float y = 12.414;

// 6 um int, OK // 99 um tipo long, ilegal


// 12.414F um tipo float, OK

// um tipo double, ilegal

Tipos, Literais, Operadores

28

Converso automtica
z

Qualquer operao com dois ou mais operandos de tipos diferentes sofrer promoo (converso automtica) ao tipo mais abrangente, que pode ser:
z z

O maior ou mais preciso tipo da expresso (at double) O tipo int (para tipos menores que int)

double d = 10 + 50L + 4.6;


// tudo promovido para double

Tipos, Literais, Operadores

29

Converso automtica
z

As regras para converso com tipos primitivos podem ser assim resumidas:
z

O tipo boolean no pode ser convertido para nenhum outro tipo Os tipos no-booleanos podem ser convertidos para outros tipos no-booleanos, contanto que no haja perda de preciso. Isto , podem ser convertidos apenas para tipos que suportem um limite igual ou maior ao seu

Tipos, Literais, Operadores

30

Coero (cast)
z

As variveis podem ser convertidas em tipos maiores de maneira automtica, mas no em tipos menores
z

Desta forma, uma expresso int pode ser tratada como long, mas uma expresso long no poder ser tratada como int sem que haja uma coero explicita

Uma coero utilizada para persuadir o compilador a reconhecer uma atribuio Esse procedimento pode ser adotado, por exemplo, para comprimir um valor long em uma varivel int Na coero, o programador assume os riscos da converso de dados
31

Tipos, Literais, Operadores

Coero
z

No h risco de perda de informao na atribuio a seguir:


z

long L = 120; int i = L;

Mas o compilador acusar erro porque um long no pode ser atribudo a um int
z

Soluo: int i = (int) L;

O operador de coero tem maior precedncia que os demais operadores


32

Tipos, Literais, Operadores

Coero - Exemplo

public class Test { public static void main(String args[]) { int i = 16777473; short s = (short) i; byte b = (byte) i; System.out.println(Valor int: + i); System.out.println(Valor short: + s); System.out.println(Valor byte: + b); } i i= =00000001 0000000100000000 0000000000000001 0000000100000001 00000001 }
(short (short(2 (2bytes) bytes)- -valor: valor:257) 257) bb= =00000001 0000000100000000 0000000000000001 0000000100000001 00000001
Tipos, Literais, Operadores

A execuo de cdigo provoca duas converses. Em ambas ocorre perda de informao

(int (int(4 (4bytes) bytes) - -valor: valor:16777473) 16777473) ss==00000001 0000000100000000 0000000000000001 0000000100000001 00000001

(byte (byte(1 (1byte) byte)- -valor: valor:1) 1)

33

Coero Exemplo com objetos


Array v = new Array( ); v.add(Hello); String s = (String)v.get(0);
z

Como o mtodo get sempre retorna um elemento do tipo Object, que no pode ser atribudo a uma String, torna-se necessrio fazer o cast antes da atribuio Caso fosse feita a atribuio direta, teramos um erro de compilao:
String s = v.get(0); // erro

Tipos, Literais, Operadores

34

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