java aula 04

70
Módulo III Os Fundamentos I Francisco Souza Márcio de Paula

Upload: francisco-jose-a-c-souza

Post on 14-Apr-2017

180 views

Category:

Education


0 download

TRANSCRIPT

Page 1: Java aula 04

Módulo IIIOs Fundamentos I

Francisco Souza

Márcio de Paula

Page 2: Java aula 04

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

Page 3: Java aula 04

Exemplo 01

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

char boolean byte short

int long double float

Page 4: Java aula 04

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

Page 5: Java aula 04

Exemplo 01

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

byte 27 − 1

short 215 − 1

int 231 − 1

long 263 − 1

Page 6: Java aula 04

Tipos de Dados

Referencial

Todo e qualquer tipo de classe criada em Java.

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

Page 7: Java aula 04

Exemplo 02

Object

Scanner

Integer

String

ArrayList

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

Page 8: Java aula 04

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

Page 9: Java aula 04

Exemplo 03

byte → int → long

byte → float → double

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

Page 10: Java aula 04

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

Page 11: Java aula 04

Exemplo 04

long → int → short

float → int

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

Page 12: Java aula 04

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

Page 13: Java aula 04

Exemplo 05

int code = 44;

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

44

0x0021String name = “Francis”;

Page 14: Java aula 04

Literais

Conceito

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

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

Page 15: Java aula 04

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

Page 16: Java aula 04

Literais

Inteiros

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

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

Page 17: Java aula 04

Exemplo 06

int code = 44;

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

int codeHex = 0x2C;

int codeOctal = 054;

Page 18: Java aula 04

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

Page 19: Java aula 04

Exemplo 07

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

float goldenRatio = 1.618f;

double half = 0.5d;

Page 20: Java aula 04

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

Page 21: Java aula 04

Exemplo 08

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

char letter = ‘z’;

String str = “hello”;

Page 22: Java aula 04

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

Page 23: Java aula 04

Exemplo 09

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

Object obj = null;

Page 24: Java aula 04

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

Page 25: Java aula 04

Exemplo 10

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

final float altura = 1.68f;

altura = 1.80f;

Page 26: Java aula 04

Exemplo 10

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

final float altura = 1.68f;

altura = 1.80f;

Page 27: Java aula 04

Exemplo 11

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

final Person another = new Person();

me = another;

final Person me = new Person();

Page 28: Java aula 04

Exemplo 11

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

final Person another = new Person();

me = another;

final Person me = new Person();

Page 29: Java aula 04

Exemplo 12

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

final Person me = new Person();

me.setName(“Francis”);

Page 30: Java aula 04

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

Page 31: Java aula 04

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

Page 32: Java aula 04

Exemplo 13

class User {

String name;

String email;

String password;

transient int loginCounter;

...

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

Page 33: Java aula 04

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

Page 34: Java aula 04

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

Page 35: Java aula 04

Exemplo 14

class Foo {

static int fooCount;

...

}

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

Page 36: Java aula 04

Tipos de Variáveis

Constantes

static + final

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

Page 37: Java aula 04

Exemplo 15

class Bar {

static final int BAR_SECRET = 0x4E00B7;

...

}

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

Page 38: Java aula 04

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

Page 39: Java aula 04

Exemplo 16

class Foo {

int size;

public void setSize(int size) {

size = size;

}

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

Page 40: Java aula 04

Exemplo 16

class Foo {

int size;

public void setSize(int size) {

this.size = size;

}

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

Page 41: Java aula 04

Operadores em Java

Operadores Aritméticos

Quatro operações

+ - * /

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

Page 42: Java aula 04

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

Page 43: Java aula 04

Operadores em Java

Operadores Aritméticos

Resto

%

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

Page 44: Java aula 04

Exemplo 18

int mod = 10 % 3;

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

Page 45: Java aula 04

Operadores em Java

Operadores de Atribuição

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

Page 46: Java aula 04

Operadores em Java

Operador de Atribuição

int size = 23;

String name = “Ykaro”;

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

Page 47: Java aula 04

Operadores em Java

Operadores Atribuição

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

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

Page 48: Java aula 04

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

Page 49: Java aula 04

Fonte de Bugs

Operadores Atribuição

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

++x --x

x++ x--

Page 50: Java aula 04

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

Page 51: Java aula 04

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

Page 52: Java aula 04

Fonte de Bugs

Operadores Atribuição

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

++xPrimeiroincrementa, depois atribui.

x++Primeiro atribui,depois incrementa.

Page 53: Java aula 04

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

Page 54: Java aula 04

Operadores em Java

Operadores de Comparação

== != < ><= >=

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

Page 55: Java aula 04

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

Page 56: Java aula 04

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

Page 57: Java aula 04

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

Page 58: Java aula 04

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

Page 59: Java aula 04

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

Page 60: Java aula 04

Operadores em Java

Operadores Lógicos Curto-Circuitados

&&||

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

Page 61: Java aula 04

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

Page 62: Java aula 04

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

Page 63: Java aula 04

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

Page 64: Java aula 04

Operadores em Java

Operadores Lógicos Não Curto-Circuitados

&|

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

Page 65: Java aula 04

Operadores em Java

Operadores Lógicos Não Curto-Circuitados

Nega um valor lógico.

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

Page 66: Java aula 04

Operadores em Java

Operador Lógico Negação

!

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

Page 67: Java aula 04

Exemplo 26

boolean a = true;

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

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

false

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

Page 68: Java aula 04

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

Page 69: Java aula 04

Operadores em Java

Operador Ternário

<exp> ? <caso_positivo> : <caso_negativo>

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

Page 70: Java aula 04

Exemplo 27

int a = 10;

int b = 12;

int maior = a > b ? a : b;

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