Disciplina: Programação Orientada à Objetos · Tipo Tamanho Alcance byte 1 byte -128 a 127 short...

Post on 14-Nov-2018

239 views 0 download

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

»

»

»

Edmilson Campos (edmilson.campos@ifrn.edu.br) 2

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 (edmilson.campos@ifrn.edu.br) 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 (edmilson.campos@ifrn.edu.br) 4

»−

»

»

»

»

Edmilson Campos (edmilson.campos@ifrn.edu.br) 5

»

»

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 (edmilson.campos@ifrn.edu.br) 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 (edmilson.campos@ifrn.edu.br) 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 (edmilson.campos@ifrn.edu.br) 8

int i;

float f = 3.141592f;

char a = '\u0061', b = 'b', c, d = 'd';

boolean b1, b2 = true;

Edmilson Campos (edmilson.campos@ifrn.edu.br) 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 (edmilson.campos@ifrn.edu.br) 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 (edmilson.campos@ifrn.edu.br) 11

Edmilson Campos (edmilson.campos@ifrn.edu.br) 12

Edmilson Campos (edmilson.campos@ifrn.edu.br) 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

»

»

Edmilson Campos (edmilson.campos@ifrn.edu.br) 14

»

»

»

»

»

Edmilson Campos (edmilson.campos@ifrn.edu.br) 15

»

»

int a = 100;

long b = a;

Edmilson Campos (edmilson.campos@ifrn.edu.br) 16

»

»

»

»

»

»

float a = 100.00f;

int b = (int)a;

Edmilson Campos (edmilson.campos@ifrn.edu.br) 17

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 (edmilson.campos@ifrn.edu.br) 18

»

»

»

Edmilson Campos (edmilson.campos@ifrn.edu.br) 19

»

▪»

»

Edmilson Campos (edmilson.campos@ifrn.edu.br) 20

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 (edmilson.campos@ifrn.edu.br) 21

»

»

»

»

»

»

Edmilson Campos (edmilson.campos@ifrn.edu.br) 22

int a = 10;

int b = 20;

int c, d;

c = a++; // c recebe 10

d = ++b; // d recebe 21

Edmilson Campos (edmilson.campos@ifrn.edu.br) 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 (edmilson.campos@ifrn.edu.br) 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 (edmilson.campos@ifrn.edu.br) 25

Edmilson Campos (edmilson.campos@ifrn.edu.br) 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 (edmilson.campos@ifrn.edu.br) 27

»

»

»

»

Edmilson Campos (edmilson.campos@ifrn.edu.br) 28

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 (edmilson.campos@ifrn.edu.br) 29

»

»

int x = 7;

int y = (x < 10) ? x * 2 : x / 2;

System.out.println("y = " + y); // y = 14

Edmilson Campos (edmilson.campos@ifrn.edu.br) 30

»

»

x = y;

Edmilson Campos (edmilson.campos@ifrn.edu.br) 36

»

»

»

Edmilson Campos (edmilson.campos@ifrn.edu.br) 37

Edmilson Campos (edmilson.campos@ifrn.edu.br) 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;

Edmilson Campos (edmilson.campos@ifrn.edu.br) 39