Disciplina: Programação Orientada à Objetos · Tipo Tamanho Alcance byte 1 byte -128 a 127 short...
Transcript of Disciplina: Programação Orientada à Objetos · Tipo Tamanho Alcance byte 1 byte -128 a 127 short...
Disciplina:
MsC. Alexandro Vladno
Edmilson Campos
MsC. Fábio Procópio
Esp. Felipe Dantas
MsC. João Maria
MsC. Liviane Melo
Corpo docente:
AULA 02
Programação Orientada à Objetos
Tipo Tamanho Alcance
byte 1 byte -128 a 127
short 2 bytes -32.768 a 32.767
int 4 bytes -2.147.483.648 a 2.147.483.647
Long 8 bytes -9223372036854775808 a 9223372036854775807
/* Cuidados com o alcance do tipo: */
byte b = 127;
System.out.println("b = " + b); // b = 127
b = b + 1;
System.out.println("b = " + b); // b = -128
Edmilson Campos ([email protected]) 3
Tipo Tamanho Alcance
float 4 bytes aprox. ±3.402823 E+38F
double 8 bytes aprox. ±1.79769313486231 E+308
//Um sufixo F ou f é utilizado para literais do tipo float
//A separação decimal é feita com “.”
float f = 1.0f / 3.0f;
double d = 0.1e1 / 3.; // 0.1e1 = 0,1 x 101
//Note a diferença na precisão.
System.out.println(f); // 0.33333334
System.out.println(d); // 0.3333333333333333
Edmilson Campos ([email protected]) 4
▪
»
»
−
char c = 'a';
System.out.println("c: " + c); // c: a
c = c + 1;
System.out.println("c: " + c); // c: b
c = (char)(c * 100 / 80);
System.out.println("c: " + c); // c: z
int i = c;
Edmilson Campos ([email protected]) 6
▪
Código Significado
\n Quebra de linha (new line ou linefeed)
\r Retorno de carro (carriage return)
\b Retrocesso (backspace)
\t Tabulação (horizontal tabulation)
\f Nova página (form feed)
\’ Aspas simples (apóstrofo)
\” Aspas
\\ Barra invertida
Edmilson Campos ([email protected]) 7
▪
▪
»
boolean b = true;
if (b) System.out.println("OK!"); // OK!
int i = (int) b; // Erro de compilação!
i = 1;
if (i) System.out.println("??"); // Idem!
Edmilson Campos ([email protected]) 8
▪
▪
▪
int i;
float f = 3.141592f;
char a = '\u0061', b = 'b', c, d = 'd';
boolean b1, b2 = true;
Edmilson Campos ([email protected]) 9
▪
▪
▪
public class Variavel {
public static int c = 10; // De classe.
public int i; // De instância.
public int func() {
int n = 5; // Local.
i = 2 * n;
return (i + c);
}
}
Edmilson Campos ([email protected]) 10
▪
▪
▪
int i = 10;
if (i > 0) {
int j = 15;
System.out.println(i + j); // 25
}
j = i + j; // Erro: variável fora de escopo!
Edmilson Campos ([email protected]) 11
Edmilson Campos ([email protected]) 13
abstract
const continue for new
enum assert strictfp instanceof while
super native float volatile long
finally class static void interface
char final try short Int
default goto package synchronized boolean
do extends catch transient return
if private this break double
implements protected throw byte else
import public throws case switch
▪
▪
▪
public class Constantes {
public static void main(String[] args) {
final double CM_POR_POLEGADA = 2.54;
CM_POR_POLEGADA = 2.55; // Erro!
double larguraPol = 13.94;
double larguraCm = larguraPol * CM_POR_POLEGADA;
System.out.println(larguraCm);
}
}
Edmilson Campos ([email protected]) 18
Operador Descrição uso
+ Adição a + b
- Subtração a – b
* Multiplicação a * b
/ Divisão a / b
% Resto da divisão inteira a % b
- (Unário) Inversão de sinal -a
+ (Unário) Manutenção de sinal +a
++ Incremento unário ++a ou a++
-- Decremento unário --a ou a--
Edmilson Campos ([email protected]) 21
▪
int a = 10;
int b = 20;
int c, d;
c = a++; // c recebe 10
d = ++b; // d recebe 21
Edmilson Campos ([email protected]) 23
== Igual a == b
!= Diferente a != b
> Maior que a > b
>= Maior que ou igual a a >= b
< Menor que a < b
<= Menor que ou igual a a <= b
Observações: Os parâmetros devem ser de tipos
compatíveis; Não confunda = (atribuição) com ==
(igualdade).
Edmilson Campos ([email protected]) 24
&& AND (E) a && b
& AND sem curto-circuito a & b
II OR (OU) a || b
| OR sem curto-circuito a | b
^ XOR (ou Exclusivo) a ^ b
! NOT (inversão de valor) !a
Observações:
Só operam sobre valores lógicos;
Podem ser combinados em expressões
grandes.
Edmilson Campos ([email protected]) 25
Edmilson Campos ([email protected]) 26
int x = 10, y = 15, z = 20;
// (z > y) não é avaliado.
if ((x > y) && (z > y)) { /* ... */ }
// (z == y) não é avaliado.
if ((x == 10) || (z == y)) { /* ... */ }
// Ambos são avaliados.
if ((x > y) & (z > y)) { /* ... */ }
// Ambos são avaliados.
if ((x == 10) | (z == y)) { /* ... */ }
& AND (E)
| OR (OU)
^ XOR (ou Exclusivo)
~ NOT (não)
>> Deslocamento de bits para direita (divisão)
<< Deslocamento de bits para esquerda (multiplicação)
Observações:
Operam em variáveis inteiras, bit a bit:
Edmilson Campos ([email protected]) 27
Expressão Equivale
x += y; x = x + y;
x -= y; x = x - y;
x *= y; x = x * y;
x /= y; x = x / y;
x %= y; x = x % y;
Edmilson Campos ([email protected]) 29
▪
▪
»
»
int x = 7;
int y = (x < 10) ? x * 2 : x / 2;
System.out.println("y = " + y); // y = 14
Edmilson Campos ([email protected]) 30
Edmilson Campos ([email protected]) 38
// Equivale a new String("Olá, mundo!").
String mensagem = "Olá, mundo!";
// String vazia (tamanho 0).
String str = "";
// Concatenação.
str = "A mensagem é: " + mensagem;
// Conversão (c1 é aquele objeto Coordenada).
int i = 10; float f = 3.14f;
str = "i = " + i + ", f = " + f;
str += ", c1 = " + c1;