A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Laboratório de Java Programação Básica em Java (Lab I) Prof. Guido Araújo.

Apresentações semelhantes


Apresentação em tema: "Laboratório de Java Programação Básica em Java (Lab I) Prof. Guido Araújo."— Transcrição da apresentação:

1 Laboratório de Java Programação Básica em Java (Lab I) Prof. Guido Araújo

2 Tipos de Dados Tipos primitivos –Lógico: boolean –Caracter: char (16) –Byte: byte (8) –Inteiros: short (16) < int (32) < long (64) –Floating-point: float (32) < double (64) –Void: void

3 Declarações e Definições Declaração de variáveis –Tipo da variável e o seu nome int a; String s = abcd; –Pode-se criar uma referência para um objeto String s = new String(abcd); –Ou mesmo um invólucro Character c = new Character(letra);

4 Declarações e Definições (cont.) Campos float saldoAtual; String titular; Métodos float getSaldo () { código }

5 Escopo Escopos encaixados são permitidos { int x = 12; // somente x está disponível { int q = 96; // ambos x & q disponíveis } // somente x disponível // q fora de escopo }

6 Escopo (cont.) Mas não é uma festa, como em C/C++ ! { int x = 12; { int x = 96; } NÃO PODE !!

7 Escopo (cont.) Vida das variáveis –São criadas –Continuam vivas enquanto estiverem dentro do escopo –Depois o coletor-de-lixo se livra delas. Aleluia !!! { String s = new String(oba); } // fim do escopo s nasce s morre

8 Coletor de Lixo De tempos em tempos varre o espaço livre jogando fora o que está fora de escopo

9 Operadores –Os mesmos comuns em outras linguagens: + - * / = –Precedência é matemática –Parênteses para forçar precedência e legibilidade

10 Mais Operadores (cont.) Atribuição: = Relacionais: > = <= == != Bitwise (bit-a-bit): & (AND) | (OR) ~ (NOT) ^ (XOR) Lógicos: || && Operador shift (deslocamento) x > y Auto-incremento: i++ (pos) --i (pré)

11 Mais Operadores (cont.) Erro comum –Confundir = com ==

12 Mais Operadores (cont.) Concatenação de cadeias int x = 0, y = 1, z = 2; String s = "x, y, z "; System.out.println (s + x + y + z);

13 Controle da Execução if-else –Tipo boolean somente possue valores true ou false –expression é avaliado como boolean –expression pode ser qualquer expressão

14 Controle da Execução (cont.) ; while –expression é avaliada como tipo boolean –statement executa enquanto expression for true –Pode fazer operações dentro de expression

15 Controle da Execução (cont.) do-while –expression é avaliada como tipo boolean –statement executa sempre uma primeira vez –Enquanto expression for true execução continua

16 Controle da Execução (cont.) for-loop –initialization: inicializar o controle do laço –conditional: se true laço statement continua a executar –step: incrementa o controle do laço mais uma interação

17 Controle da Execução (cont.) switch –selector é avaliado como tipo int –statement selecionada executa de acordo com selector –break (opcional) faz saltar para o final da sentença –Se não for nenhum dos casos executa sentença em default

18 Tipos Agregados de Dados (cont.) Arrays –Declaração: int a[10]; –Acesso: a[5] = 47; –Inicialização : a[] = { 13, 25, 83, 90 } b[] = { casa, muito, bonita } Início em zero

19 O que é um objeto ? Empacotando funções e dados em class A class torna-se capaz de descrever e características e comportamento Tipos de dados abstratos –A class permite definir um novo tipo de dado –Ela permite o programador abstrair o problema –O compilador trata o novo tipo da mesma maneira que os tipos built-in –É como se a linguagem estivesse se adequando ao problema…..

20 Classes Campos Métodos –Diferente de C/C++ –Definição interna class ContaCor { float saldoAtual; void creditaValor (float val) { saldoAtual = saldoAtual + val; }

21 Instanciando, Criando e Acessando class ContaCor { float saldoAtual; void creditaValor (float val) { saldoAtual = saldoAtual + val; } : ContaCor conta = new ContaCor(); conta.saldoAtual = 0.0f; conta.creditaValor (10.0f); Instancia objeto Acessa campo Acessa método

22 Um Programa Simples // INF-300 Laboratório de Java // HelloWorld.java import java.util.*; public class HelloWorld { public static void main(String[] args) { System.out.println("Hello, it's: "); System.out.println(new Date()); } Importando utilitários Imprimindo

23 Compilando e Executando pedro> javac HelloWorld.java pedro> java HelloWorld HelloWorld.class EXECUTA !!

24 Exercício 1 Do diretório acesso Implemente o programa HelloWorld.java Implemente um programa CriaConta.java que instancia uma conta, credita R$ 10 e imprime o saldo. Compile e execute.

25 Controle de Acesso Três modos de acessar membros de uma classe –public todas as declarações a seguir estão disponíveis para todos –private só o criador do tipo pode acessar estes membros –protected mais tarde !!

26 Controle de Acesso (cont.) class ContaCor { private float saldoAtual; } : ContaCor conta = new ContaCor(); conta.saldoAtual = 0; : Não funciona !!

27 Controle de Acesso (cont.) class ContaCor { public float saldoAtual; } : ContaCor conta = new ContaCor(); conta.saldoAtual = 0; Agora sim !!

28 Controle de Acesso (cont.) public class ContaCor { int saldoAtual; String titular; } Tudo público

29 Métodos de Acesso (cont.) class ContaCor { private float saldoAtual; void creditaValor (float val) { saldoAtual = saldoAtual + val; } Acessa saldo

30 Exercício 2 Do diretório acesso Leia o programa TestaAcesso.java Faça saldoAtual ser privado. O que ocorreu ? Faça saldoAtual ser public. O que ocorreu ? (Extra) Estude o programa MetodoAcesso.java. Que vantagem ele oferece em relação à TestaAcesso.java ?

31 Armazenamento Estático static mantém o valor da variável durante execução –Variável é inicializada somente na primeira chamada da função –O valor que for armazenado permanece entre chamadas –Variável não é disponível fora do escopo

32 Armazenamento Estático class ContaCor { static private float saldoAtual; void creditaValor (float val) { saldoAtual = saldoAtual + val; } Variável estática

33 Armazenamento Estático (cont.) ContaCor conta1 = new ContaCor(); ContaCor conta2 = new ContaCor(); : conta1.creditaValor (10.0f); conta2.creditaValor (5.0f); : conta2 conta1 10.0

34 Armazenamento Estático (cont.) ContaCor conta1 = new ContaCor(); ContaCor conta2 = new ContaCor(); : conta1.creditaValor (10.0f); conta2.creditaValor (5.0f); : conta2 conta1 10.0

35 Armazenamento Estático (cont.) ContaCor conta1 = new ContaCor(); ContaCor conta2 = new ContaCor(); : conta1.creditaValor (10.0f); conta2.creditaValor (5.0f); : conta2 conta1 15.0

36 Método Estático class ContaCor { static private float saldoAtual; static void getSaldo () { return saldoAtual; } : ContaCor.getSaldo(); : Chamada da classe

37 Exercício 3 Do diretório acesso 1.Leia o programa StaticVar.java. Compile e execute. O que ocorreu ? 2.Altere saldoAtual para saldo estático e execute. O que ocorreu ? 3.(Extra) Estude o programa StaticMetodo.java. O que significa o método ser estático ?

38 Construtor class ContaCor { float saldoAtual; } : ContaCor conta = new ContaCor(); conta.saldoAtual = 0.0; : Incializa saldo

39 Construtor (cont.) class ContaCor { float saldoAtual; ContaCor (int val) { saldoAtual = val; } : ContaCor conta = new ContaCor(10.0f); Cria objeto e Inicializa saldo

40 Exercício 4 Do diretório acesso 1.Adicione um construtor a CriaConta.java que inicializa a conta com R$ 35. Compile e execute.


Carregar ppt "Laboratório de Java Programação Básica em Java (Lab I) Prof. Guido Araújo."

Apresentações semelhantes


Anúncios Google