Download - Java 03 Tipos Dados Operadores
Tipos de Dados e Operadores
Regis Pires Magalhes
Tipos de Dados e Operadores
Identificadores
O nome de um item no programa escrito em Java
Variveis, mtodos, classes e labels.
No podem ser palavras reservadas
Devem iniciar com letra, cifro($) ou sublinhado(_).
Por conveno:
Nomes de variaveis e mtodos iniciam com minsculas e as palavras subsequentes devem iniciar com maisculas.
Ex: nome, nomeComposto, etc...
Nomes de classes iniciam com maisculas e as palavras subsequentes tambm.
Ex: Classe, ClasseComposta, etc...
Nomes de constantes so escritos em caixa alta e os nomes compostos separados pelo caracter '_'.
Ex: CONSTANTE, OUTRA_CONSTANTE
Comentrios
Comentrio de linha (// ...)
Comentrio de Bloco (/* ... */)
...
/* comentrio daqui,
ate aqui */
// declara a idade
int idade;
idade = 15;
// imprime a idade
System.out.println(idade);
...
Declarao e uso de variveis
Declarao
tipoDaVaravel nomeDaVarivel;
int idade;
Uso
idade = 15;
Inicializao de variveis
...
//gera uma idade no ano seguinte
int idade = 15;
int idadeNoAnoQueVem;
idadeNoAnoQueVem = idade + 1;
...
Operadores Aritmticos
+, -, / e *
% (mdulo)
Resto da diviso inteira.
...
int quatro = 2 + 2;
int tres = 5 2;
int oito = 4 * 2;
int dezesseis = 64 / 4;
int um = 5 % 2; // 5 dividido por 2 d 2 e tem resto 1;
// o operador % pega o resto da diviso inteira
...
Tipos de Dados e Operadores
Operadores
Aritmticos
adio (+), subtrao (-)
multiplicao (*), diviso (/), resto (%)
incremento (++), decremento (--)
a++; a--; ++a; --a
Relacionais
comparao (==, !=, =) produz boolean
Bit-a-bit (tipos inteiros e booleanos)
and (&), or (|), not (~)
deslocamento esquerda ()
Deslocamento direita sem sinal (>>>)
Tipos de Dados e Operadores
Operadores
Teste condicional (&& e ||)
Operam somente em expresses booleanas
Avaliados da esquerda para a direita
Implementam a tcnica de curto-circuito
Exemplo
a < b && c > d || e == f
Se a < b avalia para false, a subexpresso && false e a avaliao de c > d no realizada
Se ambos, a < b e c > d avaliam para true, a expresso toda true e a avaliao de e == f no realizada
Tipos de Dados e Operadores
Operadores
Atribuio (=)
Usado para atribuir um valor a uma varivel
Pode ser usado em combinao com outros operadores.
Se possvel, a expresso do lado direito convertida para o tipo do operando do lado esquerdo.
No faz converses implcitas que resultam em perda de dados.
Tais converses devem ser feitas via cast (converso) explcito.
Tipos de Dados e Operadores
Operadores:
Atribuio com operao:
Um tipo especial de atribuio feito juntando-se o operador de atribuio com um dos operadores aritmticos e bit-a-bit.
Exemplo:
a += 1 // a = a + 1a *= b // a = a * ba |= b // a = a | b...
Tipos de Dados e Operadores
Operador ternrio(if-else)
Operador que usa trs argumentos:
boolean-exp ? value0 : value1
Se boolean-exp avaliar para true, a expresso value0 ser o resultado da expresso.
Se boolean-exp avaliar para false, a expresso value1 ser o resultado da expresso.
Exemplo:
int x, y;String s, str;...
x = y > 0 ? x / y : 0;str = "Teste";s = str != null ? s + str : s;...
Tipos Primitivos
double
Nmero com ponto flutuante.
double d = 3.14;
double x = 5 * 10;
boolean
Verdadeiro ou falso.
boolean verdade = true;
char
Um e apenas um caractere.
Caractere deve estar entre aspas simples.
char letra = 'a';
System.out.println(letra);
Tipos primitivos e valores
Tipos primitivos guardam o real contedo da varivel.
Ao usar o operador de atribuio =, o valor ser copiado.
int i = 5; // i recebe uma cpia do valor 5
int j = i; // j recebe uma cpia do valor de i
i = i + 1; // i vira 6, j continua 5
Tipos Primitivos
Armazenam valores e no referncias.
No necessitam de instanciao.
Outros tipos primitivos:
byte, short, long e float.
O tipo boolean tem 2 valores possveis: true e false.
um tipo que representa um bit de informao, mas seu tamanho real no est precisamente definido (http://java.sun.com/docs/books/tutorial/java/nutsandbolts/datatypes.html).
Casting e promoo
Problema
int i;
double d, d2;
d = 3.1415;
i = d; // no compila
i = 3.14; // no compila
d = 5; // ok, double pode conter um inteiro
i = d; // no compila
// Quando h possibilidade de perda, a converso
// no pode ser feita.
i = 5; // ok, pois no h perda de dados.
d2 = i; // ok
Tipos de Dados e Operadores
Converso de tipos
Java converter um tipo de dados em outro sempre que apropriado.
As converses ocorrero automaticamente quando houver garantia de no haver perda de informao:
Tipos menores em tipos maiores;
Tipos de menor preciso em tipos de maior preciso;
Inteiros em ponto-flutuante.
Exemplo:
byte b = 10;short s = b;int i = s;long l = i;float f = l; double b = f;
Tipos de Dados e Operadores
Converso de tipos
Algumas vezes, valores literais podem ter tipos ambguos:
Nestes casos o compilador necessita de informaes adicionais para determinar o tipo em questo.
Tipos de Dados e Operadores
char c = 0xffff; // max char hex valuebyte b = 0x7f; // max byte hex valueshort s = 0x7fff; // max short hex valueint i1 = 0x2f; // Hexadecimal (lowercase)int i2 = 0X2F; // Hexadecimal (uppercase)int i3 = 0177; // Octal (zeros iniciais)// Hex and Oct tambm trabalham com longlong n1 = 200L; // long suffixlong n2 = 200l; // long suffix (pode causar confuso)long n3 = 200;float f1 = 1;float f2 = 1F; // float suffixfloat f3 = 1f; // float suffixfloat f4 = 1e-45f; // potncia de 10 float f5 = 1e+9f; // float suffixdouble d1 = 1d; // double suffixdouble d2 = 1D; // double suffixdouble d3 = 47e47d; // potncia de 10
Converso de tipos
Exemplos de literais:
Casting
o processo em que um tipo mais abrangente moldado (casted) para outro tipo menos abrangente, podendo haver algum tipo de perda.
O cast no feito automaticamente. O programador precisa defini-lo explicitamente, assumindo os riscos de perda de informao.
feito colocando-se o tipo desejado entre parnteses na frente da expresso.
double d3 = 3.14;
int i = (int) d3;
No exemplo acima, d3 foi moldado como um int. O valor de i agora 3.
Casting
De long para int:
long x = 10000;
int i = x; // No ok, pois pode perder dados.
Com o casting:
long x = 10000;
int i = (int) x;
Tipos de Dados e Operadores
Promoo
Qualquer operao com dois ou mais operadores de tipos diferentes sofrer promoo, isto , converso automtica para o tipo mais abrangente
O maior ou mais preciso tipo da expresso
O tipo int (char, byte ou short)
Exemplo
int a = 10;double d = a + 45F + 12D;float e = (float) (a + 45F + 12D);
byte a = 9, b = 6; short c = 7;byte d = (byte) (a + b + c);
Casting
float x = 0.0; // No compila
float x = 0.0f; // Ok.
// A letra f indica que o literal deve ser
// tratado como float.
long l = 0.0L;
// A letra L indica que o literal deve ser
// tratado como long.
double d = 5;
float f = 3;
float x = (float) d + f;
/* O Java faz as contas e vai armazenando sempre
no maior tipo que apareceu durante as operaes.
No mnimo, o Java armazena um int,para fazer as
contas. Boolean no pode ser convertido para outro tipo. */
Castings possveis
Tamanhos dos tipos
Referncias e Recursos
Livros
Object-Oriented System Development: HTML Edition
http://g.oswego.edu/dl/oosdw3/
Software Engineering (5th Edition) Ian Sommerville
Object-Oriented Analysis and Design with Applications Grady Booch
Object-Oriented Software Engineering: A Case Driven Approach Ivar Jacobson
Thinking in Java, 3rd ed. Revision 4.0 Bruce Eckel
http://www.mindview.net/Books/TIJ/
Web
http://www.argonavis.com.br/cursos/java/j100/index.html
Clique para editar o formato do texto-ttulo
Clique duplo para editar os formatos do esquema do texto
Segundo nvel do esquema
Terceiro nvel do esquema
Quarto nvel do esquema
Quinto nvel do esquema
Sexto nvel do esquema
Stimo nvel do esquema
Oitavo nvel do esquema
Nono nvel do esquema