Fundamentos do java
-
Upload
necio-de-lima-veras -
Category
Documents
-
view
377 -
download
60
Transcript of Fundamentos do java
![Page 1: Fundamentos do java](https://reader031.fdocumentos.tips/reader031/viewer/2022013111/5565f662d8b42a20158b50ac/html5/thumbnails/1.jpg)
Prof. Nécio de Lima Verashttp://lattes.cnpq.br/8284657916723590
Fundamentos da Linguagem Java
![Page 2: Fundamentos do java](https://reader031.fdocumentos.tips/reader031/viewer/2022013111/5565f662d8b42a20158b50ac/html5/thumbnails/2.jpg)
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á).
![Page 3: Fundamentos do java](https://reader031.fdocumentos.tips/reader031/viewer/2022013111/5565f662d8b42a20158b50ac/html5/thumbnails/3.jpg)
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
![Page 4: Fundamentos do java](https://reader031.fdocumentos.tips/reader031/viewer/2022013111/5565f662d8b42a20158b50ac/html5/thumbnails/4.jpg)
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);...
![Page 5: Fundamentos do java](https://reader031.fdocumentos.tips/reader031/viewer/2022013111/5565f662d8b42a20158b50ac/html5/thumbnails/5.jpg)
Prof. Nécio Veras
Declaração e uso de variáveis
➔ DeclaraçãotipoDaVaríavel nomeDaVariável;int idade;
Usoidade = 15;
![Page 6: Fundamentos do java](https://reader031.fdocumentos.tips/reader031/viewer/2022013111/5565f662d8b42a20158b50ac/html5/thumbnails/6.jpg)
Prof. Nécio Veras
Inicialização de variáveis
...//gera uma idade no ano seguinteint idade = 15;int idadeNoAnoQueVem;idadeNoAnoQueVem = idade + 1;...
![Page 7: Fundamentos do java](https://reader031.fdocumentos.tips/reader031/viewer/2022013111/5565f662d8b42a20158b50ac/html5/thumbnails/7.jpg)
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
...
![Page 8: Fundamentos do java](https://reader031.fdocumentos.tips/reader031/viewer/2022013111/5565f662d8b42a20158b50ac/html5/thumbnails/8.jpg)
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 (>>>)
![Page 9: Fundamentos do java](https://reader031.fdocumentos.tips/reader031/viewer/2022013111/5565f662d8b42a20158b50ac/html5/thumbnails/9.jpg)
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
![Page 10: Fundamentos do java](https://reader031.fdocumentos.tips/reader031/viewer/2022013111/5565f662d8b42a20158b50ac/html5/thumbnails/10.jpg)
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.
![Page 11: Fundamentos do java](https://reader031.fdocumentos.tips/reader031/viewer/2022013111/5565f662d8b42a20158b50ac/html5/thumbnails/11.jpg)
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:
![Page 12: Fundamentos do java](https://reader031.fdocumentos.tips/reader031/viewer/2022013111/5565f662d8b42a20158b50ac/html5/thumbnails/12.jpg)
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;...
![Page 13: Fundamentos do java](https://reader031.fdocumentos.tips/reader031/viewer/2022013111/5565f662d8b42a20158b50ac/html5/thumbnails/13.jpg)
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);
![Page 14: Fundamentos do java](https://reader031.fdocumentos.tips/reader031/viewer/2022013111/5565f662d8b42a20158b50ac/html5/thumbnails/14.jpg)
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
![Page 15: Fundamentos do java](https://reader031.fdocumentos.tips/reader031/viewer/2022013111/5565f662d8b42a20158b50ac/html5/thumbnails/15.jpg)
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.
![Page 16: Fundamentos do java](https://reader031.fdocumentos.tips/reader031/viewer/2022013111/5565f662d8b42a20158b50ac/html5/thumbnails/16.jpg)
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
![Page 17: Fundamentos do java](https://reader031.fdocumentos.tips/reader031/viewer/2022013111/5565f662d8b42a20158b50ac/html5/thumbnails/17.jpg)
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;
![Page 18: Fundamentos do java](https://reader031.fdocumentos.tips/reader031/viewer/2022013111/5565f662d8b42a20158b50ac/html5/thumbnails/18.jpg)
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.
![Page 19: Fundamentos do java](https://reader031.fdocumentos.tips/reader031/viewer/2022013111/5565f662d8b42a20158b50ac/html5/thumbnails/19.jpg)
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;
![Page 20: Fundamentos do java](https://reader031.fdocumentos.tips/reader031/viewer/2022013111/5565f662d8b42a20158b50ac/html5/thumbnails/20.jpg)
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);
![Page 21: Fundamentos do java](https://reader031.fdocumentos.tips/reader031/viewer/2022013111/5565f662d8b42a20158b50ac/html5/thumbnails/21.jpg)
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. */
![Page 22: Fundamentos do java](https://reader031.fdocumentos.tips/reader031/viewer/2022013111/5565f662d8b42a20158b50ac/html5/thumbnails/22.jpg)
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 ’
![Page 23: Fundamentos do java](https://reader031.fdocumentos.tips/reader031/viewer/2022013111/5565f662d8b42a20158b50ac/html5/thumbnails/23.jpg)
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 ” ;