programação com acesso a bd programação oo em javaclaytonmaciel/files/20111/bd/aula 14 -...

23
1 “Todo longo caminho começa com um simples passo.” Provérbio Chinês Programação OO em Java José Maria Monteiro Pontifícia Universidade Católica do Rio de Janeiro Pontifícia Universidade Católica do Rio de Janeiro – PUC PUC-Rio Rio Departamento de Informática Departamento de Informática [email protected] [email protected] rio.br Programação com Acesso a BD Clayton Maciel Costa Campus: Ipanguaçu Curso: Técnico em Informática [email protected] Programação com Acesso a BD Programação com Acesso a BD

Upload: danglien

Post on 08-Nov-2018

214 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Programação com Acesso a BD Programação OO em Javaclaytonmaciel/files/20111/bd/Aula 14 - Primitivas... · 1 “Todo longo caminho começa com um simples passo.” Provérbio Chinês

1

“Todo longo caminho começa

com um simples passo.”Provérbio Chinês

Programação OO em Java

José Maria Monteiro

Pontifícia Universidade Católica do Rio de Janeiro Pontifícia Universidade Católica do Rio de Janeiro –– PUCPUC--RioRioDepartamento de InformáticaDepartamento de Informática

[email protected]@inf.puc--rio.brrio.br

Programação com Acesso a BD

Clayton Maciel Costa

Campus: IpanguaçuCurso: Técnico em Informática

[email protected]

Programação com Acesso a BD

Programação com Acesso a BD

Page 2: Programação com Acesso a BD Programação OO em Javaclaytonmaciel/files/20111/bd/Aula 14 - Primitivas... · 1 “Todo longo caminho começa com um simples passo.” Provérbio Chinês

2

Unidade II: Introdução à Linguagem Java

Comentários

Primitivas da Linguagem Java

� Existem três estilos possíveis de comentários emJava:

//Comentários de uma linha (in line)

/* Comentário de

várias linhas */

/** Comentário de documentação */

Programação com Acesso a BD

Page 3: Programação com Acesso a BD Programação OO em Javaclaytonmaciel/files/20111/bd/Aula 14 - Primitivas... · 1 “Todo longo caminho começa com um simples passo.” Provérbio Chinês

3

Comentários

Primitivas da Linguagem Java

� 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 automaticamentedo código fonte para gerar documentação em HTML – utilitárioJavaDoc.

Blocos e Sentenças

Primitivas da Linguagem Java

� Uma sentença (statement) é uma linha de códigoterminada 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.

Page 4: Programação com Acesso a BD Programação OO em Javaclaytonmaciel/files/20111/bd/Aula 14 - Primitivas... · 1 “Todo longo caminho começa com um simples passo.” Provérbio Chinês

4

Identificadores

Primitivas da Linguagem Java

� 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”

Identificadores

Primitivas da Linguagem Java

� Exemplos:number,Number, sum_$, $$_100, mal, saldoTotal...

� Identificadores Ilegais:48casa, all/clear, navio-escola,...

Page 5: Programação com Acesso a BD Programação OO em Javaclaytonmaciel/files/20111/bd/Aula 14 - Primitivas... · 1 “Todo longo caminho começa com um simples passo.” Provérbio Chinês

5

Palavras-chave

Primitivas da Linguagem Java

� 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

• const, goto

– Literais reservados

• null, true, false

Java possui 51 palavras-chave/reservadas.

� A linguagem Java possui 51 palavras chave/reservadas:

Primitivas da Linguagem Java

Page 6: Programação com Acesso a BD Programação OO em Javaclaytonmaciel/files/20111/bd/Aula 14 - Primitivas... · 1 “Todo longo caminho começa com um simples passo.” Provérbio Chinês

6

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

– 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

Unidimensionais

Primitivas da Linguagem Java

Page 7: Programação com Acesso a BD Programação OO em Javaclaytonmaciel/files/20111/bd/Aula 14 - Primitivas... · 1 “Todo longo caminho começa com um simples passo.” Provérbio Chinês

7

Tipos

� Tipos representam um valor, uma coleção devalores ou coleção de outros tipos. Podem ser:

– Tipos básicos, ou primitivos: quando representamunidades indivisíveis de informação (de tamanhofixo).

– Tipos complexos: quando representam informaçõesque 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.

Primitivas da Linguagem Java

Page 8: Programação com Acesso a BD Programação OO em Javaclaytonmaciel/files/20111/bd/Aula 14 - Primitivas... · 1 “Todo longo caminho começa com um simples passo.” Provérbio Chinês

8

Tipos Primitivos

� boolean

� char

� byte

� short

� int

� long

� float

� double

true ou false (1 bit)

caracteres ( Unicode ) (16 bits)

inteiro ( 8 bits )

inteiro (16 bits)

inteiro ( 32 bits )

inteiro ( 64 bits)

ponto flutuante ( 32 bits )

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

Primitivas da Linguagem Java

Page 9: Programação com Acesso a BD Programação OO em Javaclaytonmaciel/files/20111/bd/Aula 14 - Primitivas... · 1 “Todo longo caminho começa com um simples passo.” Provérbio Chinês

9

Tipos Primitivos

Primitivas da Linguagem Java

Tipos de Dados Primitivos

Numeric Types

Floating-point TypeIntegral Type

Integer TypesCharacter Type

Boolean Type

byte short int long float doublecharboolean

Tipos de Dados Primitivos em Java

Tipos Primitivos

� Inteiros– São representados como números com sinal e comcomplemento de 2.

� Exemplos:– int i = -215;

– int max = 0x7fffffff; //(hexadecimal)

– int min = 0450; // (octal)

– long fone = 854581947L;

Primitivas da Linguagem Java

Page 10: Programação com Acesso a BD Programação OO em Javaclaytonmaciel/files/20111/bd/Aula 14 - Primitivas... · 1 “Todo longo caminho começa com um simples passo.” Provérbio Chinês

10

Tipos Primitivos

� Intervalos de Valores Inteiros:

Primitivas da Linguagem Java

Tipos Primitivos

� Caracteres– O tipo de dado char engloba todos os 65.536 caracteresdo conjunto de caracteres unicode.

– Os primeiros 128 caracteres →→→→ os mesmos do padrãoASCII

� Intervalo de Valores Caracteres:

Primitivas da Linguagem Java

Page 11: Programação com Acesso a BD Programação OO em Javaclaytonmaciel/files/20111/bd/Aula 14 - Primitivas... · 1 “Todo longo caminho começa com um simples passo.” Provérbio Chinês

11

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 omesmo se aplica aos números negativos, bastandocolocar 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 operadoreslógicos, condicionais e relacionais.

– Seus valores não podem ser convertidos em valores deoutras tipos de dados primitivos.

� Intervalo de Valores Booleanos:

Primitivas da Linguagem Java

Page 12: Programação com Acesso a BD Programação OO em Javaclaytonmaciel/files/20111/bd/Aula 14 - Primitivas... · 1 “Todo longo caminho começa com um simples passo.” Provérbio Chinês

12

Strings

� “String” não é um tipo primitivo e sim uma classe;

� Literais: “”, “Hello”, “World”;

� Concatenação: “Hello” + “World” = “HelloWorld”;

� Conversão Implícita: “Hello” + 2001 =“Hello2001”;

� Comparação de Strings: a.equals(b);

– retorna boolean

� Tamanho de uma String: a.length() ;

– retorna int

Primitivas da Linguagem Java

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;

int i = 10, j=100;

long big = 12341234L;

float z = 3.414f;

char c = ‘S’;

boolean b = true;

Page 13: Programação com Acesso a BD Programação OO em Javaclaytonmaciel/files/20111/bd/Aula 14 - Primitivas... · 1 “Todo longo caminho começa com um simples passo.” Provérbio Chinês

13

� Atribuição

< IDENTIFICADOR>= < EXPRESSÃO>

Ex: idade = 23; sexo = “M”; tem_filhos = false;

j = k = 5;

Primitivas da Linguagem Java

Declaração, Inicialização e Atribuição

� 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!

Primitivas da Linguagem Java

Variáveis Locais

public static void main (String args[])

{

int a = 10;

}

Page 14: Programação com Acesso a BD Programação OO em Javaclaytonmaciel/files/20111/bd/Aula 14 - Primitivas... · 1 “Todo longo caminho começa com um simples passo.” Provérbio Chinês

14

Incremento e Decremento

idade = idade + 1; ou idade + = 1; ou idade ++;

idade = idade - 1; ou idade - = 1; ou idade --;

Primitivas da Linguagem Java

� Posfixadoint a = 4;int b = a++; // b=4; a=5;int c = a--; // c=5; a=4;

� Prefixadoint a = 4;int b = ++a; // a=5; b=5; int c = --a; // a=4; c=4;

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)

Primitivas da Linguagem Java

Page 15: Programação com Acesso a BD Programação OO em Javaclaytonmaciel/files/20111/bd/Aula 14 - Primitivas... · 1 “Todo longo caminho começa com um simples passo.” Provérbio Chinês

15

Operadores

� Precedência:

Unários, aritméticos, relacionais, lógicos ( primeiro&& e depois ||)

Primitivas da Linguagem Java

Primitivas da Linguagem Java

Operadores � Precedência: de cima para baixa, da direita para aesquerda.

= += -= *= /= %= <<= >>= >>>= &= ^= |=Atribuição

?:Condicional

||OR lógico

&&AND lógico

|OR binário

^XOR binário

&AND binário

== !=Igualdade

< <= > >= instanceofRelacionais

<< >> >>>Rotação (shift)

+ -Adição

* / %Multiplicação

new (type)Criação e Type Cast

++x --x +x -x ~ !Pré-fixados Unários

[ ] . (parâmetros) x++ x--Pós-fixados

Page 16: Programação com Acesso a BD Programação OO em Javaclaytonmaciel/files/20111/bd/Aula 14 - Primitivas... · 1 “Todo longo caminho começa com um simples passo.” Provérbio Chinês

16

• 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

Operadores

� Operadores booleanos! = NOT & = AND| = OR ^ = XOR

� Operadores a nível de bit~ = Complemento & = AND| = OR ^ = XOR

Expressões lógicas

Primitivas da Linguagem Java

Page 17: Programação com Acesso a BD Programação OO em Javaclaytonmaciel/files/20111/bd/Aula 14 - Primitivas... · 1 “Todo longo caminho começa com um simples passo.” Provérbio Chinês

17

� Operadores curto circuito

&& = AND || = OR

� Exemplo:String s = null;

if ( ( s != null ) && ( s.length() > 10 ) )

// faça alguma coisa aqui!

Expressões lógicas

Primitivas da Linguagem Java

Operadores Relacionais

<, <=, >, >=

� Sempre operadores binários

� Operandos são expressões numéricas

� Exemplo(a < b) && (b < c)

Primitivas da Linguagem Java

Page 18: Programação com Acesso a BD Programação OO em Javaclaytonmaciel/files/20111/bd/Aula 14 - Primitivas... · 1 “Todo longo caminho começa com um simples passo.” Provérbio Chinês

18

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”) // false!(“ABC”.equals(“abc”)) // true

Primitivas da Linguagem Java

Operadores Lógicos Booleanos: !, ̂ , &, |

� Os 2 operandos são avaliadosint c = 10; boolean b = (true | (c++ > 20)); // c = 11;

� Atribuição extendidab &= a; // b = (b & (a))b ̂ = a; // b = (b ^ (a))b |= a; // b = (b | (a))

boolean b1 = false; b2 = false; b3 = false;b1 |= true; // trueb2 ̂ = b1; // trueb3 &= b1 | b2; // false - b3 = (b3 & (b1 | b2))

| - OR& - AND^ - XOR! - NOT

Primitivas da Linguagem Java

Page 19: Programação com Acesso a BD Programação OO em Javaclaytonmaciel/files/20111/bd/Aula 14 - Primitivas... · 1 “Todo longo caminho começa com um simples passo.” Provérbio Chinês

19

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 = trueb = ( c > 20 ) && (--c == 10); // c = 10; b = false

String s = “aaa”, s2 = null;if (s.equals(“bbb”) & s2.equals(“aa”)) // Erro: s2 é nulo!!!if (s.equals(“bbb”) && s2.equals(“aa”)) // ok

� Precedência: &&, ||boolean b4 = b1 || !b3 && b2; // ( b1 || ((!b3) && b2))

Primitivas da Linguagem Java

Operadores Bitwise: ~, &, |, ^

char v1 = ‘)’; // 41byte v2 = 13;

System.out.println(">"+(~v1));System.out.println(">"+(v1 & v2));System.out.println(">"+(v1 | v2));System.out.println(">"+(v1 ̂ v2));

� Atribuição extendida:b &= a b = (b & a)b ̂ = a b = (b ^ a)b |= a b = (b | a)

| - OR& - AND^ - XOR~ - NOT (inverte os bits)

>-42

>9

>45

>36

Primitivas da Linguagem Java

Page 20: Programação com Acesso a BD Programação OO em Javaclaytonmaciel/files/20111/bd/Aula 14 - Primitivas... · 1 “Todo longo caminho começa com um simples passo.” Provérbio Chinês

20

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 umaexpressão automaticamente para um tipo maior.– long longValue;

– int intValue = 10;

– LongValue = intValue;

Primitivas da Linguagem Java

Page 21: Programação com Acesso a BD Programação OO em Javaclaytonmaciel/files/20111/bd/Aula 14 - Primitivas... · 1 “Todo longo caminho começa com um simples passo.” Provérbio Chinês

21

Convenções de Código

� Java é case sensitive;

� Só por essa razão temos um bom motivo parapadronizar como devemos escrever nossoscódigos;

� Além de tudo é uma boa prática toda a equipeescrever da mesma forma – aumenta oentendimento e organização.

� Existe um documento formal da sun quedetermina esse padrão.

Primitivas da Linguagem Java

Convenções de Código

� Classes e Interfaces– class MinhaClasse

– interfaceMinhaInterface

� Métodos e Variáveis– double valorSalarioMensal;

– calcularSalario()

� Constantes– DIAS_EXPEDICAO_SENHA

– MAX_SITE

Primitivas da Linguagem Java

Page 22: Programação com Acesso a BD Programação OO em Javaclaytonmaciel/files/20111/bd/Aula 14 - Primitivas... · 1 “Todo longo caminho começa com um simples passo.” Provérbio Chinês

22

1. Escreva um programa que imprima o resultado das expressões abaixo: • 3 – 2 – 1 + 2 + 1 + 3• 2 x 3 – 4 x 5• 2 + 6 – 3 / 7 x 9• 3 % 4 – 8

2. Escreva um programa que concatene as strings “Tópicos”, “de” e “Linguagens” e imprima o resultado final.

3. 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’

Exercícios

Cuidados com arrendondamentos

int i = 100 * 3 / 5;System.out.println(">"+i);

i = 3 / 5 * 100;System.out.println(">"+i);

i = (int) 3.0 / 5 * 100;System.out.println(">"+i);

i = (int) (3.0 / 5 * 100);System.out.println(">"+i);

>60

>0

>0

>60

Page 23: Programação com Acesso a BD Programação OO em Javaclaytonmaciel/files/20111/bd/Aula 14 - Primitivas... · 1 “Todo longo caminho começa com um simples passo.” Provérbio Chinês

23

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;