java 03 tipos dados operadores

Download Java 03 Tipos Dados Operadores

If you can't read please download the document

Upload: regis-magalhaes

Post on 24-Jul-2015

2.889 views

Category:

Documents


4 download

TRANSCRIPT

Tipos de Dados e Operadores

Regis Pires Magalhes

[email protected]

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