fundamentos do java

Post on 27-May-2015

377 Views

Category:

Documents

60 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Prof. Nécio de Lima Verashttp://lattes.cnpq.br/8284657916723590

   

Fundamentos da Linguagem Java

Prof. Nécio Veras

Royalties

Estes slides foram inicialmente criados pelo prof. Régis Pires (IFPI-Parnaíba) que gentilmente cedeu para que algumas adaptações fossem feitas.

Ass. Nécio de Lima Veras (IFCE-Tianguá).

Prof. Nécio Veras

Tipos de Dados e Operadores

➔Identificadores Por convenção:

Nomes de variaveis iniciam com minúsculas e as palavras subsequentes devem iniciar com maiúsculas.• Ex: nome, nomeComposto, etc...

Nomes de classes iniciam com maiúsculas e as palavras subsequentes também.• Ex: Classe, ClasseComposta, etc...

Nomes de constantes são escritos em caixa alta e os nomes compostos separados pelo caracter '_'.• Ex: CONSTANTE, OUTRA_CONSTANTE

Prof. Nécio Veras

Comentários

➔ Comentário de linha (// ...)➔ Comentário de Bloco (/* ... */)

.../* comentário daqui,ate aqui */// declara a idadeint idade;idade = 15;// imprime a idadeSystem.out.println(idade);...

Prof. Nécio Veras

Declaração e uso de variáveis

➔ DeclaraçãotipoDaVaríavel nomeDaVariável;int idade;

Usoidade = 15;

Prof. Nécio Veras

Inicialização de variáveis

...//gera uma idade no ano seguinteint idade = 15;int idadeNoAnoQueVem;idadeNoAnoQueVem = idade + 1;...

Prof. Nécio Veras

Operadores Aritméticos

➔ +, -, / e *➔ % (módulo)

Resto da divisão 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 divisão inteira

...

Prof. Nécio Veras

Tipos de Dados e Operadores

➔ Operadores Aritméticos

adição (+), subtração (-) multiplicação (*), divisão (/), resto (%) incremento (++), decremento (--)

• a++; a--; ++a; --a comparação (==, !=, <, <=, >, >=) produz boolean

Bit-a-bit (tipos inteiros e booleanos) and (&), or (|), not (~) deslocamento à esquerda (<<), à direita (>>) Deslocamento à direita sem sinal (>>>)

Prof. Nécio Veras

Tipos de Dados e Operadores

➔ Operadores Teste condicional (&& e ||)

Operam somente em expressões booleanas Avaliados da esquerda para a direita Implementam a técnica de curto-circuito Exemplo

• a < b && c > d || e == f Se “a < b” avalia para false, a subexpressão “&&” é false e a

avaliação de “c > d” não é realizada Se ambos, “a < b” e “c > d” avaliam para true, a expressão

toda é true e a avaliação de “e == f” não é realizada

Prof. Nécio Veras

Tipos de Dados e Operadores

➔ Operadores Atribuição (=)

Usado para atribuir um valor a uma variável Pode ser usado em combinação com outros

operadores. Se possível, a expressão do lado direito é convertida

para o tipo do operando do lado esquerdo. Não faz conversões implícitas que resultam em perda

de dados.• Tais conversões devem ser feitas via cast (conversão)

explícito.

Prof. Nécio Veras

Tipos de Dados e Operadores

a += 1 // a = a + 1a *= b // a = a * ba |= b // a = a | b...

➔ Operadores: Atribuição com operação:

Um tipo especial de atribuição é feito juntando-se o operador de atribuição com um dos operadores aritméticos e bit-a-bit.

Exemplo:

Prof. Nécio Veras

Tipos de Dados e Operadores

➔ Operador ternário(if-else) Operador que usa três argumentos:

boolean-exp ? value0 : value1 Se boolean-exp avaliar para true, a expressão value0 será o

resultado da expressão. Se boolean-exp avaliar para false, a expressão value1 será o

resultado da expressão. Exemplo:

int x, y;String s, str;...

x = y > 0 ? x / y : 0;str = "Teste";s = str != null ? s + str : s;...

Prof. Nécio Veras

Tipos Primitivos

➔ double Número 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);

Prof. Nécio Veras

Tipos primitivos e valores

➔ Tipos primitivos guardam o real conteúdo da variável.

➔ Ao usar o operador de atribuição =, o valor será copiado.

int i = 5; // i recebe uma cópia do valor 5int j = i; // j recebe uma cópia do valor de ii = i + 1; // i vira 6, j continua 5

Prof. Nécio Veras

Tipos Primitivos

➔ Armazenam valores e não referências.➔ Não necessitam de instanciação.➔ Outros tipos primitivos:

byte, short, long e float.➔ O tipo boolean tem 2 valores possíveis: true e false.

Prof. Nécio Veras

Casting e promoção

➔ Problemaint i;double d, d2;d = 3.1415;i = d; // não compilai = 3.14; // não compilad = 5; // ok, double pode conter um inteiroi = d; // não compila// Quando há possibilidade de perda, a conversão// não pode ser feita.i = 5; // ok, pois não há perda de dados.d2 = i; // ok

Prof. Nécio Veras

Tipos de Dados e Operadores

➔ Conversão de tipos Java converterá um tipo de dados em outro sempre que

apropriado. As conversões ocorrerão automaticamente quando houver

garantia de não haver perda de informação: Tipos menores em tipos maiores; Tipos de menor precisão em tipos de maior precisão; Inteiros em ponto-flutuante.

Exemplo:byte b = 10;short s = b;int i = s;long l = i;float f = l; double b = f;

Prof. Nécio Veras

Casting

É o processo em que um tipo mais abrangente é moldado (casted) para outro tipo menos abrangente, podendo haver algum tipo de perda.

O cast não é feito automaticamente. O programador precisa defini-lo explicitamente, assumindo os riscos de perda de informação.

É feito colocando-se o tipo desejado entre parênteses na frente da expressão.double d3 = 3.14;int i = (int) d3;

No exemplo acima, d3 foi moldado como um int. O valor de i agora é 3.

Prof. Nécio Veras

Casting

De long para int:long x = 10000;int i = x; // Não ok, pois pode perder dados.

Com o casting:long x = 10000;int i = (int) x;

Prof. Nécio Veras

Tipos de Dados e Operadores

➔ Promoção Qualquer operação com dois ou mais operadores de tipos

diferentes sofrerá promoção, isto é, conversão automática para o tipo mais abrangente

O maior ou mais preciso tipo da expressão 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);

Prof. Nécio Veras

Casting

float x = 0.0; // Não compilafloat 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 operações. No mínimo, o Java armazena um int,para fazer as contas. Boolean não pode ser convertido para outro tipo. */

Prof. Nécio Veras

Exercício

➔ Quais dos identificadores abaixo são permitidos pela linguagem Java?

➔ Classifique os valores abaixo em double, int, char, String, boolean ou inválido:

a . R a i o X b . X P T O 1 2 3 c . V a l o r d a v e n d a d . 1 P a u l o e . R 2 D 2 _ f . V e t o r 1 5 g . Z Z Z Z Z Z h . _ 3 M i . _ 1 0 V

j . _ 3 B b k . R a i o x l . 1 _ 0 _ V

m . N / 4 n . # M o . ! s o m a

a . 1 2 b . 1 2 . 1 c . 1 2 , 0 d . V e r d a d e e . “ N é c i o ”

f . ' 1 ' g . 8 + 4 h . - 3 . 7 i . M e n t i r a j . ‘ N é c i o ’

k . 3 . 7 - - l . + + 1 , 3 7 m . 1 7 2 F n . V e r d a d e i r o o . ‘ N é c i o ’ + ’ V e r a s ’

p . “ r ” q . ‘ C a s a ’ r . 2 A s . F a l s o t . “ N é c i o ” + ” V e r a s ”

u . . 0 0 1 v . c i n c o w . 1 / 2 L x . 1 2 v e r d a d e s y . 1 + ’ N ’

Prof. Nécio Veras

Exercício

➔ Sobre os Comandos de Atribuição, marque V para Verdadeiro e F para Falso nos seguintes comandos de atribuição:

➔ Suponha que Numero é do tipo int, xCol e yCol são do tipo float, Classe é do tipo char e Achado do tipo boolean. Determine quais das atribuições abaixo são válidas em Java e, se não forem válidas, explique o porquê.

I n t A , b , C , d , E ;

f l o a t R , M , S ;

c h a r c h ;

S t r i n g T X T ;

( ) A = 1 0 . 4 ; ( ) A = M ; ( ) B = C / 2 + D – E ; ( ) b = ( B / 4 ) * S ; ( ) c : = “ N ” ;

( ) A = 1 0 , 3 ; ( ) M = s * ( b m o d 3 ) ; ( ) B = C / 2 – E ; ( ) b = ( B / 4 ) * S ; ( ) c = “ N E ” ;

( ) c = ‘ b ’ ; ( ) A = R = d = 1 0 3 ; ( ) M = E ; ( ) T X T = c + 3 2 ; ( ) C h = c + ‘ A ’ ;

( ) T = S ; ( ) T X T : = “ O l a ” ; ( ) T = 1 0 m o d 2 ; ( ) T X T = T + ‘ A ’ ; ( ) c h = C * “ 1 ” ;

( ) T = ‘ S ’ ; ( ) T X T = O l a ; ( ) T = ( 1 0 m o d 2 ) ; ( ) T X T = T + ‘ A ’ ; ( ) C = “ 2 ” ;

a . x C o l = 2 . 1 7 8 ; b . 3 = N u m e r o ; c . C l a s s e = ' B + + ' ;

d . N u m e r o = N u m e r o / 2 e . C l a s s e = A ; f . A c h a d o = C l a s s e ;

g . x C o l = y C o l + N u m e r o ; h . A c h a d o = t r u e ; i . N u m e r o = x C o l ;

j . x C o l = y c o l + x C o l ; k . A c h a d o = ‘ 0 ’ ; l . C l a s s e = “ C ” ;

top related