Programação com Acesso a BD Programação OO em Javaclaytonmaciel/files/20111/bd/Aula 14 -...

Preview:

Citation preview

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

monteiro@inf.pucmonteiro@inf.puc--rio.brrio.br

Programação com Acesso a BD

Clayton Maciel Costa

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

clayton.maciel@ifrn.edu.br

Programação com Acesso a BD

Programação com Acesso a BD

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

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.

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,...

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

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

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

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

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

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

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

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;

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;

}

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

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

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

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

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

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

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

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

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

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;

Recommended