Primitivas da Linguagem Java

Propaganda
Programação OO em Java
Curso: Técnico em Informática
Campus: Ipanguaçu
José Maria Monteiro
Pontifícia Universidade Católica do Rio de Janeiro – PUC
PUC--Rio
Departamento
de Informática
Clayton Maciel
Costa
[email protected]
[email protected]
[email protected]
“Todo longo caminho começa
com um simples passo.”
Provérbio Chinês
1
Unidade II: Introdução à
Linguagem Java
Primitivas da Linguagem Java
Comentários
Existem três estilos possíveis de comentários em
Java:
//Comentários de uma linha (in line)
/* Comentário de
várias linhas */
/** Comentário de documentação */
2
Primitivas da Linguagem Java
Comentários
Particularmente, o comentário de documentação ...
/** Comentário de documentação */
... É útil para documentar funcionalidades no código.
Essas funcionalidades podem ser extraídas automaticamente
do código fonte para gerar documentação em HTML – utilitário
JavaDoc.
Primitivas da Linguagem Java
Blocos e Sentenças
Uma sentença (statement) é uma linha de código
terminada por um “;”
total = a + b + c;
Um bloco de código é delimitado por chaves
{
total = a + b + c;
}
Identação: 3 ou 4 espaços.
PS: Usar a mesma identação em todo o código.
3
Primitivas da Linguagem Java
Identificadores
Um nome em um programa
São usados para denotar classes, métodos e variáveis
Composição
– Sequência de caracteres:
• Letras
• Dígitos
• Undescores ( _ )
• Símbolos monetários ( $ )
– Não pode começar por dígito
– São “case sensitive”
Primitivas da Linguagem Java
Identificadores
Exemplos:
number, Number, sum_$, $$_100, mal, saldoTotal...
Identificadores Ilegais:
48casa, all/clear, navio-escola,...
4
Primitivas da Linguagem Java
Palavras-chave
Sinônimos:
- Palavras-Reservadas ou Keywords
Definição:
- São identificadores reservados da linguagem
- Não podem ser usadas para denotar outras entidades (classes,
métodos ou variáveis)
Exemplos:
– Palavras-chaves em Java
• abstract, while, extends
– Palavras-chave que não estão em uso
Java possui 51 palavraschave/reservadas.
• const, goto
– Literais reservados
• null, true, false
Primitivas da Linguagem Java
A linguagem Java possui 51 palavras chave/reservadas:
5
Primitivas da Linguagem Java
Literais
Literais: São valores representáveis literalmente:
– Denotam um valor constante
– Podem ser numéricos, caracteres, booleanos ou strings
Exemplos:
– 2000, 0, -7, 3.14, ‘a’, ‘A’, ‘*’, true, false, ‘”abba”, “3.14”,
“for”, null, ...
Primitivas da Linguagem Java
Literais
Exemplos:
– Números: 1, 2.14, 1.6e-23, 0L, etc
Unidimensionais
– Valores booleanos: true e false
– Caracteres individuais: ‘a’, ‘u0041’,’\n’, etc
– Seqüências de caracteres: “aaa”, “Java”
– Vetores de números, booleanos ou strings: {”a”,”b”}
Compostos
6
Primitivas da Linguagem Java
Tipos
Tipos representam um valor, uma coleção de
valores ou coleção de outros tipos. Podem ser:
– Tipos básicos, ou primitivos: quando representam
unidades indivisíveis de informação (de tamanho
fixo).
– Tipos complexos: quando representam informações
que podem ser decompostas em tipos “menores”
(primitivos ou outros tipos complexos).
Primitivas da Linguagem Java
Tipos Primitivos
Têm tamanho fixo.
Têm sempre um valor default.
Armazenados na pilha (acesso rápido).
Não são objetos.
7
Primitivas da Linguagem Java
Tipos Primitivos
boolean
true ou false (1 bit)
char
caracteres ( Unicode ) (16 bits)
byte
inteiro ( 8 bits )
short
inteiro (16 bits)
int
inteiro ( 32 bits )
long
inteiro ( 64 bits)
float
ponto flutuante ( 32 bits )
double
ponto flutuante (64 bits )
Primitivas da Linguagem Java
Tipos Primitivos
Tipos Inteiros
– byte
– short
– int
– long
Tipos Ponto-Flutuante (decimais)
– float
– double
Tipo Booleano
– boolean
Tipo Caractere
– char
8
Primitivas da Linguagem Java
Tipos Primitivos
Tipos de Dados Primitivos
Boolean Type
Numeric Types
Integral Type
Character Type
boolean
Floating-point Type
Integer Types
char
byte
short
int
long
float
double
Tipos de Dados Primitivos em Java
Primitivas da Linguagem Java
Tipos Primitivos
Inteiros
– São representados como números com sinal e com
complemento de 2.
Exemplos:
– int i = -215;
– int max = 0x7fffffff;
//(hexadecimal)
– int min = 0450;
// (octal)
– long fone = 854581947L;
9
Primitivas da Linguagem Java
Tipos Primitivos
Intervalos de Valores Inteiros:
Primitivas da Linguagem Java
Tipos Primitivos
Caracteres
– O tipo de dado char engloba todos os 65.536 caracteres
do conjunto de caracteres unicode.
– Os primeiros 128 caracteres → os mesmos do padrão
ASCII
Intervalo de Valores Caracteres:
10
Primitivas da Linguagem Java
Tipos Primitivos
Números de Ponto-Flutuante
– Zero pode ser representado por 0.0 ou –0.0
Intervalo de Valores Caracteres:
– A tabela abaixo mostra os valores positivos, mas o
mesmo se aplica aos números negativos, bastando
colocar o sinal “-” antes do número.
Primitivas da Linguagem Java
Tipos Primitivos
Booleanos
– Usado para representar os valores lógicos “verdadeiro” e
“falso”.
– Valores booleanos podem ser retornados de operadores
lógicos, condicionais e relacionais.
– Seus valores não podem ser convertidos em valores de
outras tipos de dados primitivos.
Intervalo de Valores Booleanos:
11
Primitivas da Linguagem Java
Strings
“String” não é um tipo primitivo e sim uma classe;
Literais: “”, “Hello”, “World”;
Concatenação: “Hello” + “World” = “HelloWorld”;
Conversão Implícita:
“Hello2001”;
“Hello”
+
2001
=
Comparação de Strings: a.equals(b);
– retorna boolean
Tamanho de uma String: a.length() ;
– retorna int
Primitivas da Linguagem Java
Declaração, Inicialização e Atribuição
Declarando Variáveis
< TIPO> < VARIÁVEL>;
Ex: char a, b, c;
double area;
Declarando e Iniciando Variáveis
< TIPO> < VARIAVEL> = <EXPRESSÃO> ;
Ex: int i = 10;
float z = 3.414f;
int i = 10, j=100;
char c = ‘S’;
long big = 12341234L;
boolean b = true;
12
Primitivas da Linguagem Java
Declaração, Inicialização e Atribuição
Atribuição
< IDENTIFICADOR> = < EXPRESSÃO>
Ex: idade = 23; sexo = “M”; tem_filhos = false;
j = k = 5;
Primitivas da Linguagem Java
Variáveis Locais
Declaradas dentro de um bloco de código { };
Criadas quando o bloco de código inicia,
destruídas quando ele acaba;
Devem ser inicializadas ou o compilador emitirá
um erro!
public static void main (String args[])
{
int a = 10;
}
13
Primitivas da Linguagem Java
Incremento e Decremento
idade = idade + 1; ou idade + = 1; ou idade ++;
idade = idade - 1; ou idade - = 1; ou idade --;
Posfixado
int a = 4;
int b = a++;
int c = a--;
// b=4; a=5;
// c=5; a=4;
Prefixado
int a = 4;
int b = ++a;
int c = --a;
// a=5; b=5;
// a=4; c=4;
Primitivas da Linguagem Java
Operadores
Operadores Relacionais:
> >= < <= == !=
Operadores Lógicos:
& ( and) | (or) ! ( not ) ^ (XOR)
Operadores a Nível de Bit
~ (Complemento) | (OR) & (AND) ^ (XOR)
Operadores Curto Circuito
&& (AND)
|| (OR)
14
Primitivas da Linguagem Java
Operadores
Precedência:
Unários, aritméticos, relacionais, lógicos ( primeiro
&& e depois ||)
Primitivas da Linguagem Java
Operadores
Precedência: de cima para baixa, da direita para a
esquerda.
Pós-fixados
[ ] . (parâmetros) x++ x--
Pré-fixados Unários
++x --x +x -x ~ !
Criação e Type Cast
new (type)
Multiplicação
* / %
Adição
+ -
Rotação (shift)
<< >> >>>
Relacionais
< <= > >= instanceof
Igualdade
== !=
AND binário
&
XOR binário
^
OR binário
|
AND lógico
&&
OR lógico
||
Condicional
?:
Atribuição
= += -= *= /= %= <<= >>= >>>= &= ^= |=
15
Primitivas da Linguagem Java
Operadores
•
Exemplos
2 + 3 * 4
é equivalente a
2 + ( 3 * 4)
1 + 2 - 3
é equivalente a
(1 + 2) - 3
- - 4
é equivalente a
-(-4)
if ( x > y & a < b )
é equivalente a
if ( (x > y) & (a < b) )
Primitivas da Linguagem Java
Expressões lógicas
Operadores booleanos
! = NOT
| = OR
& = AND
^ = XOR
Operadores a nível de bit
~ = Complemento
| = OR
& = AND
^ = XOR
16
Primitivas da Linguagem Java
Expressões lógicas
Operadores curto circuito
&& = AND
|| = OR
Exemplo:
String s = null;
if ( ( s != null ) && ( s.length() > 10 ) )
// faça alguma coisa aqui!
Primitivas da Linguagem Java
Operadores Relacionais
<, <=, >, >=
Sempre operadores binários
Operandos são expressões numéricas
Exemplo
(a < b) && (b < c)
17
Primitivas da Linguagem Java
Igualdade: ==, !=
Tipos primitivos:
– Operandos são expressões numéricas ou
booleanas
(a == b), (b == false), (c != 10)
– Tomar cuidado com expressões com ponto
flutuante
(1.0 - 2.0 / 3.0 == 1.0 / 3.0) // retorna false
Igualdade entre Strings:
“ABC”.equals(“abc”)
!(“ABC”.equals(“abc”))
// false
// true
Primitivas da Linguagem Java
Operadores Lógicos Booleanos: !, ^, &, |
! - NOT
^ - XOR
& - AND
| - OR
Os 2 operandos são avaliados
int c = 10;
boolean b = (true | (c++ > 20));
// c = 11;
Atribuição extendida
b &= a;
b ^= a;
b |= a;
// b = (b & (a))
// b = (b ^ (a))
// b = (b | (a))
boolean b1 = false; b2 = false; b3 = false;
b1 |= true;
// true
b2 ^= b1;
// true
b3 &= b1 | b2;
// false - b3 = (b3 & (b1 | b2))
18
Primitivas da Linguagem Java
Operadores Condicionais: &&, ||
Iguais aos Operadores Lógicos Booleanos ( & e | ), exceto
pelo fato de que a avaliação da expressão não precisa ser
completa (short circuit)
int c = 10;
boolean b = (true | | (c++ > 20));
// c = 10; b = true
b = ( c > 20 ) && (--c == 10); // c = 10; b = false
String s = “aaa”, s2 = null;
if (s.equals(“bbb”) & s2.equals(“aa”))
if (s.equals(“bbb”) && s2.equals(“aa”))
// Erro: s2 é nulo!!!
// ok
Precedência: &&, ||
boolean b4 = b1 || !b3 && b2;
// ( b1 || ((!b3) && b2))
Primitivas da Linguagem Java
Operadores Bitwise: ~, &, |, ^
~ - NOT (inverte os bits)
char v1 = ‘)’;
byte v2 = 13;
^ - XOR
& - AND
| - OR
// 41
System.out.println(">"+(~v1));
System.out.println(">"+(v1 & v2));
System.out.println(">"+(v1 | v2));
System.out.println(">"+(v1 ^ v2));
>-42
>9
>45
>36
Atribuição extendida:
b &= a
b ^= a
b |= a
b = (b & a)
b = (b ^ a)
b = (b | a)
19
Primitivas da Linguagem Java
Operador Condicional ?:
<condição> ? <expressão1> : <expressão2>
<expressão1> e <expressão2> devem ser de tipos
compatíveis
boolean anoBisexto = false;
int diasEmFevereiro = anoBisexto ? 29: 28;
// 28
o funcionamento é semelhante a um if-else, e a
associatividade é da direita para a esquerda
(a?b?c?d:e:f:g) é avaliado como: (a?(b?(c?d:e):f):g)
Primitivas da Linguagem Java
Casting (Conversão Explícita)
Se existe perda de precisão em uma atribuição é
necessário fazer uma conversão explicitamente:
– long longValue = 99L;
– int intValue2 = (int)longValue; //OK!
– int intValue1 = longValue;
//ERRO!
Java também pode “promover” o tipo de uma
expressão automaticamente para um tipo maior.
– long longValue;
– int intValue = 10;
– LongValue = intValue;
20
Primitivas da Linguagem Java
Convenções de Código
Java é case sensitive;
Só por essa razão temos um bom motivo para
padronizar como devemos escrever nossos
códigos;
Além de tudo é uma boa prática toda a equipe
escrever da mesma forma – aumenta o
entendimento e organização.
Existe um documento
determina esse padrão.
formal
da
sun
que
Primitivas da Linguagem Java
Convenções de Código
Classes e Interfaces
– class MinhaClasse
– interface MinhaInterface
Métodos e Variáveis
– double valorSalarioMensal;
– calcularSalario()
Constantes
– DIAS_EXPEDICAO_SENHA
– MAX_SITE
21
Exercícios
1.
Escreva um programa que imprima o resultado das
expressões abaixo:
•
•
•
•
2.
3.
3–2–1+2+1+3
2x3–4x5
2+6–3/7x9
3%4–8
Escreva um programa que concatene as strings
“Tópicos”, “de” e “Linguagens” e imprima o
resultado final.
Escreva um programa que declare, inicialize e
imprima as seguintes variáveis:
•
•
•
•
•
•
Inteiro i de 32 bits com valor 1
Inteiro j de 64 bits com valor 2
Ponto-flutuante p de 32 bits com valor 20.0
Ponto-flutuante q de 64 bits com valor 30.0
Boolean b com valor verdadeiro
Caracter c com valor ‘k’
Cuidados com arrendondamentos
int i = 100 * 3 / 5;
System.out.println(">"+i);
>60
i = 3 / 5 * 100;
System.out.println(">"+i);
>0
i = (int) 3.0 / 5 * 100;
System.out.println(">"+i);
>0
i = (int) (3.0 / 5 * 100);
System.out.println(">"+i);
>60
22
Atribuição Extendida
<variável> <op>= <expressão>
equivale a
< variável > = (<tipo>)<variável> <op>
<expressão>
int b = 2;
b += 10; // b = 12
é equivalente a
b = b + 10;
23
Download