Java aula 04

Preview:

Citation preview

Módulo IIIOs Fundamentos I

Francisco Souza

Márcio de Paula

Tipos de Dados

Primitivos

São tipos de dados que representam tipos básicos da linguagem.

Não são objetos!

Project MARK - Orientação a Obejtos com Java 2

Exemplo 01

Project MARK - Orientação a Obejtos com Java 3

char boolean byte short

int long double float

Exemplo 01

Project MARK - Orientação a Obejtos com Java 4

byte 8 bits

short 16 bits float 32 bits

int 32 bits double 64 bits

long 64 bits

Exemplo 01

Project MARK - Orientação a Obejtos com Java 5

byte 27 − 1

short 215 − 1

int 231 − 1

long 263 − 1

Tipos de Dados

Referencial

Todo e qualquer tipo de classe criada em Java.

Project MARK - Orientação a Obejtos com Java 6

Exemplo 02

Object

Scanner

Integer

String

ArrayList

Project MARK - Orientação a Obejtos com Java 7

Tipos de Dados

Conversão de Tipos

Em Java, um tipo pode ser convertido em outro.

Devem ser compatíveis.

Project MARK - Orientação a Obejtos com Java 8

Exemplo 03

byte → int → long

byte → float → double

Project MARK - Orientação a Obejtos com Java 9

Fonte de Bugs

Conversão de Tipos

Deve-se ter muito cuidado ao se converter tipos de maior precisão para tipos de menor precisão.

Perda de informação.

Project MARK - Orientação a Obejtos com Java 10

Exemplo 04

long → int → short

float → int

Project MARK - Orientação a Obejtos com Java 11

Variáveis

O que são variáveis?

“São abstrações de endereços de memória, onde valores absolutos (ou referências para outras posições de memória) são armazenadas.”

Project MARK - Orientação a Obejtos com Java 12

Exemplo 05

int code = 44;

Project MARK - Orientação a Obejtos com Java 13

44

0x0021String name = “Francis”;

Literais

Conceito

Simplesmente falando, são representações de dados dentro do código-fonte.

Project MARK - Orientação a Obejtos com Java 14

Literais

Booleanos e Lógicos

Valores true ou false.

Variáveis booleanas ou expressões lógicas

Project MARK - Orientação a Obejtos com Java 15

Literais

Inteiros

Representam números inteiros e podem ser de natureza octal, decimal ou hexadecimal.

Project MARK - Orientação a Obejtos com Java 16

Exemplo 06

int code = 44;

Project MARK - Orientação a Obejtos com Java 17

int codeHex = 0x2C;

int codeOctal = 054;

Literais

Fracionários

Representam números racionais. A parte inteira e fracionária são separadas por um ponto [ . ]

Project MARK - Orientação a Obejtos com Java 18

Exemplo 07

Project MARK - Orientação a Obejtos com Java 19

float goldenRatio = 1.618f;

double half = 0.5d;

Literais

Strings e Caracteres

Strings são cadeias de caracteres inseridos entre “ ”.

Símbolo alfanumérico entre ‘ ’.

Project MARK - Orientação a Obejtos com Java 20

Exemplo 08

Project MARK - Orientação a Obejtos com Java 21

char letter = ‘z’;

String str = “hello”;

Literais

Nulo

Representa um objeto nulo, ou seja a variável não é capaz de apontar para uma região de memória válida.

Project MARK - Orientação a Obejtos com Java 22

Exemplo 09

Project MARK - Orientação a Obejtos com Java 23

Object obj = null;

Tipos de Variáveis

Variáveis Finais

Variável a que só pode se realizar uma única operação de atribuição.

Project MARK - Orientação a Obejtos com Java 24

Exemplo 10

Project MARK - Orientação a Obejtos com Java 25

final float altura = 1.68f;

altura = 1.80f;

Exemplo 10

Project MARK - Orientação a Obejtos com Java 26

final float altura = 1.68f;

altura = 1.80f;

Exemplo 11

Project MARK - Orientação a Obejtos com Java 27

final Person another = new Person();

me = another;

final Person me = new Person();

Exemplo 11

Project MARK - Orientação a Obejtos com Java 28

final Person another = new Person();

me = another;

final Person me = new Person();

Exemplo 12

Project MARK - Orientação a Obejtos com Java 29

final Person me = new Person();

me.setName(“Francis”);

Tipos de Variáveis

Variáveis Transientes

A variável será ignorada pela JVM, quando for necessário persistir o estado do objeto na memória.

Project MARK - Orientação a Obejtos com Java 30

Tipos de Variáveis

Variáveis Transientes

Utiliza-se a palavra reservada transient.

Usada somente para atributos da classe.

Project MARK - Orientação a Obejtos com Java 31

Exemplo 13

class User {

String name;

String email;

String password;

transient int loginCounter;

...

}Project MARK - Orientação a Obejtos com Java 32

Tipos de Variáveis

Variáveis Estáticas

Independentes da instanciação de um objeto.

Todas as instâncias compartilham o mesmo valor.

Project MARK - Orientação a Obejtos com Java 33

Tipos de Variáveis

Variáveis Estáticas

Utilizada na definição de atributos de uma classe.

Utiliza-se a palavra reservada static.

Project MARK - Orientação a Obejtos com Java 34

Exemplo 14

class Foo {

static int fooCount;

...

}

Project MARK - Orientação a Obejtos com Java 35

Tipos de Variáveis

Constantes

static + final

Project MARK - Orientação a Obejtos com Java 36

Exemplo 15

class Bar {

static final int BAR_SECRET = 0x4E00B7;

...

}

Project MARK - Orientação a Obejtos com Java 37

Fonte de Bugs

Variáveis Sombreadas

Acontece quando uma variável local é declarada com mesmo nome de um atributo.

Project MARK - Orientação a Obejtos com Java 38

Exemplo 16

class Foo {

int size;

public void setSize(int size) {

size = size;

}

}Project MARK - Orientação a Obejtos com Java 39

Exemplo 16

class Foo {

int size;

public void setSize(int size) {

this.size = size;

}

}Project MARK - Orientação a Obejtos com Java 40

Operadores em Java

Operadores Aritméticos

Quatro operações

+ - * /

Project MARK - Orientação a Obejtos com Java 41

Exemplo 17

int sum = 23 + 9;

int sub = 15 – 4;

int mul = 2 * 5;

float div = 12 / 6;

Project MARK - Orientação a Obejtos com Java 42

Operadores em Java

Operadores Aritméticos

Resto

%

Project MARK - Orientação a Obejtos com Java 43

Exemplo 18

int mod = 10 % 3;

Project MARK - Orientação a Obejtos com Java 44

Operadores em Java

Operadores de Atribuição

Project MARK - Orientação a Obejtos com Java 45

Operadores em Java

Operador de Atribuição

int size = 23;

String name = “Ykaro”;

Project MARK - Orientação a Obejtos com Java 46

Operadores em Java

Operadores Atribuição

++ += *= /=-- -= %=

Project MARK - Orientação a Obejtos com Java 47

Operadores em Java

Project MARK - Orientação a Obejtos com Java 48

a++ ++a a = a + 1

a-- --a a = a - 1

a += b a = a + b

a -= b a = a - b

a *= b a = a * b

a /= b a = a / b

a %= b a = a % b

Fonte de Bugs

Operadores Atribuição

Project MARK - Orientação a Obejtos com Java 49

++x --x

x++ x--

Exemplo 19

int x = 20;

int y = x++;

System.out.println(String.valueOf(x))

System.out.println(String.valueOf(y))

------------------------------------------

21

20Project MARK - Orientação a Obejtos com Java 50

Exemplo 20

int x = 20;

int y = ++x;

System.out.println(String.valueOf(x))

System.out.println(String.valueOf(y))

------------------------------------------

21

21Project MARK - Orientação a Obejtos com Java 51

Fonte de Bugs

Operadores Atribuição

Project MARK - Orientação a Obejtos com Java 52

++xPrimeiroincrementa, depois atribui.

x++Primeiro atribui,depois incrementa.

Operadores em Java

Operadores de Comparação

São operadores utilizados para a realização de comparações entre dois objetos.

Resultam em um valor booleano.

Project MARK - Orientação a Obejtos com Java 53

Operadores em Java

Operadores de Comparação

== != < ><= >=

Project MARK - Orientação a Obejtos com Java 54

Exemplo 21

System.out.println(String.valueOf(2 == 3))

System.out.println(String.valueOf(2 != 3))

------------------------------------------

true

false

Project MARK - Orientação a Obejtos com Java 55

Exemplo 22

System.out.println(String.valueOf(2 > 3))

System.out.println(String.valueOf(2 < 3))

------------------------------------------

false

true

Project MARK - Orientação a Obejtos com Java 56

Exemplo 23

System.out.println(String.valueOf(2 <= 3))

System.out.println(String.valueOf(2 >= 3))

------------------------------------------

true

false

Project MARK - Orientação a Obejtos com Java 57

Operadores em Java

Operadores Lógicos

São operadores destinados a valores booleanos

Curto-Circuitado

Não Curto-Circuitado

Negação

Project MARK - Orientação a Obejtos com Java 58

Operadores em Java

Operadores Lógicos Curto-Circuitados

“O segundo operando de uma expressão lógica só é avaliado se o primeiro não for suficiente para determinar o valor da expressão lógica.”

Project MARK - Orientação a Obejtos com Java 59

Operadores em Java

Operadores Lógicos Curto-Circuitados

&&||

Project MARK - Orientação a Obejtos com Java 60

Exemplo 24

boolean a = true;

boolean b = false;

//O valor de a não será checado.

boolean andResult = b && a

Project MARK - Orientação a Obejtos com Java 61

Exemplo 25

boolean a = true;

boolean b = false;

//O valor de b não será checado.

boolean orResult = a || b

Project MARK - Orientação a Obejtos com Java 62

Operadores em Java

Operadores Lógicos Não Curto-Circuitados

Funcionamento similar aos operadores && e ||.

Ambos os operandos são checados para se calcular o resultado da expressão.

Project MARK - Orientação a Obejtos com Java 63

Operadores em Java

Operadores Lógicos Não Curto-Circuitados

&|

Project MARK - Orientação a Obejtos com Java 64

Operadores em Java

Operadores Lógicos Não Curto-Circuitados

Nega um valor lógico.

Project MARK - Orientação a Obejtos com Java 65

Operadores em Java

Operador Lógico Negação

!

Project MARK - Orientação a Obejtos com Java 66

Exemplo 26

boolean a = true;

System.out.println(String.valueOf( !a ))

------------------------------------------

false

Project MARK - Orientação a Obejtos com Java 67

Operadores em Java

Operador Ternário

Usado para atribuições.

Não suporta blocos de código.

Project MARK - Orientação a Obejtos com Java 68

Operadores em Java

Operador Ternário

<exp> ? <caso_positivo> : <caso_negativo>

Project MARK - Orientação a Obejtos com Java 69

Exemplo 27

int a = 10;

int b = 12;

int maior = a > b ? a : b;

Project MARK - Orientação a Obejtos com Java 70