Baixe o app para aproveitar ainda mais
Prévia do material em texto
JDK (I) O que é JDK ? Java Development Kit É um produto da Sun direcionado a desenvolvedores Java. Seus principais componentes são: javac: O compilador, que converte código fonte em bytecodes Java. jar: O empacotador que empacota as classes em um arquivo JAR. javadoc: O gerador de documentação, que gera documentação automaticamente a partir de comentários no código. jdb: O debugador. JDK (II) O JDK tem também uma JRE (Java Runtime Environment) completa: Máquina Virtual Java Bibliotecas de classes apresentadas no ambiente de produção e algumas bibliotecas que são úteis JDK - Instalação Download do JDK 6: http://java.sun.com/javase/downloads/index.jsp Programas em Java Extensão .java Para compilar: javac Classe.java Para executar: java Classe Execução a partir de um arquivo JAR: java -jar nomeDoPacote.jar O programa java cria apenas objeto inicial e a primeira mensagem. Documentação Oficial do Java Documentação Oficial: http://java.sun.com/javase/6/docs/api/index.html Como usar a documentação (I) Como usar a documentação (II) Como usar a documentação (III) Como usar a documentação (IV) Exercício 4 Para cada uma das classes EscriturarioCaixa, GerenteOperacional, GerenteDeRelacionamento, CaixaEletronico, Deposito, Saque, PessoaFisica, PessoaJuridica, ContaCorrente, ContaPoupanca, TituloDeCapitalizacao, FundoInvestimento e DOC: Crie pelo menos 2 atributos; Crie pelo menos 2 construtores de objetos; Crie pelo menos 2 métodos; Sobrescrita de métodos A classe-filha herda da superclasse seus relacionamentos, métodos e atributos. Os métodos podem ser redefinidos na subclasse, ou seja, a subclasse pode sobrescrever os métodos herdados. class Conta { double saldo; Cliente titular; void encerrar( ) { } void creditar( double valor ) { } void debitar( double valor ) { double debito = valor; saldo = saldo - debito ; } Conta ( ) { } Conta (Cliente cliente, double valor ) { saldo = valor; titular = cliente; } } class ContaCorrente extends Conta { void debitar( double valor ) { double debito = valor; double cpmf = 0.38/100; super.saldo = super.saldo - (debito + debito * cpmf) ; } ContaCorrente ( ) { } ContaCorrente ( Cliente cliente, double valor ) { super.saldo = valor; super.titular = cliente; } } Exercício 5 Termine a programação da classe ContaPoupanca, que herda da classe Conta, acrescentando os seguintes novos atributos: double renda int carenciaDias É possivel usar os metodos cretidar( ), debitar( ) e encerrar( ) mesmo sem tê-los programado na classe ContaPoupanca? Por que? Sobrecarga de métodos Diz-se que um método é sobrecarregado quando apresenta-se com assinaturas diferentes em uma mesma classe. Neste exemplo, temos a sobrecarga do método construtor: class Conta { double saldo; Cliente titular; boolean ativa; void encerrar( ) { } void creditar( double valor ) { } void debitar( double valor ) { double debito = valor; saldo = saldo – debito; } Conta( ) { ativa = true; } Conta(Cliente cliente, double valor ) { ativa = true; saldo = valor; titular = cliente; } } Metodo main( ) O método main é onde o programa inicia. Pode estar presente em qualquer classe. Os parâmetros de linha de comando são enviados para o array args[ ], do tipo String. class AgenciaBancaria { public static void main(String args[]){ Conta c = null; ContaCorrente cc = null; c = new Conta( new Cliente("Henrique“) ,2000); c.debitar(1000); System.out.println(c.saldo); cc = new ContaCorrente( new Cliente(“Carlos") ,2000); cc.debitar(1000); System.out.println(cc.saldo); } } Exercício 6 Programe na classe AgenciaBancaria um método main que cria 6 objetos do tipo Cliente e 6 objetos do tipo Conta vinculando cada nova conta a um cliente já criado no momento em que a nova conta estiver sendo construída. Arrays Um array é uma coleção de variáveis, todas do mesmo tipo. Os componentes de um array são acessados por simples índices inteiros class AgenciaBancaria { public static void main(String args[]){ int[] idades = new int[3]; double[] montantes = { 20.0, 40.5, 500.0, 1260.99 }; String[] titulares = { "Henrique", "Maria"}; } } Arrays Para usar um array: Declaramos e configuramos seu tamanho para depois preenche-lo… int[] idades = new int[3]; idades[0] = 30; idades[1] = 18; idades[2] = 47; …ou declaramos e preenchemos seu conteudo onde fica implicitado o seu tamanho (tamanho 3 no exemplo): int[] idades = {30, 18, 47} Array com Tipos Complexos Guardam apenas a referência para os objetos armazenados no arrays e não os valores, que são guardados cada qual dentro de um objeto diferente. Cliente[] clientes = new Cliente[3]; clientes[0] = new Cliente("Henrique"); clientes[1] = new Cliente("Carlos"); clientes[2] = new Cliente("Flavia"); Arrays - percorrendo O atributo length de um array nos mostra o seu tamanho. Podemos usá-lo da seguinte forma: Cliente[] clientes = new Cliente[3]; clientes[0] = new Cliente("Henrique"); clientes[1] = new Cliente("Carlos"); clientes[2] = new Cliente("Flavia"); for (int x = 0 ; x < clientes.length; x++){ System.out.println(clientes[x].nome); } Exercício 7 Crie um array chamado contas que contém 10 objetos criados a partir da classe Conta e depois navegue pelo array usando uma estrutura de repetição for avançando em direção ao seu final e imprimindo o saldo de cada objeto de conta visitado. Fluxo de Controle “Fluxo de Controle” é o termo usado para decidir quais comandos do programa são executados e em qual ordem. O loop for apresentado no exemplo de arrays e um comando de controle de fluxo. Outros comandos de controle de fluxo incluem while, if-else, switch e do- while For Para iterar sobre os elementos do vetor, podemos usar o comando for Este comando determina um loop dentro do qual ações serão executadas. Sua forma básica é: for (inicializacao; expressao booleana; acao) bloco de comandos For - exemplo String[] nomes = new String [5]; nomes[0] = "Henrique"; nomes[1] = "Carlos"; nomes[2] = "Flavia"; nomes[3] = "Maria"; nomes[4] = "Gabriel"; for (int x = 0 ; x < nomes.length; x++){ System.out.println(clientes[x].nome); } If-Else Permite controlar o fluxo de execução de um programa testando uma condição. Pode ser escrito de duas formas: if (expressao booleana) bloco de comandos ou if (expressao booleana) bloco de comandos else bloco de comandos O else é opcional. If-Else - exemplo Cliente c1 = new Cliente("Henrique"); Cliente c2 = new Cliente("Carlos"); Cliente c3 = new Cliente("Flavia"); Cliente c4 = new Cliente("Gabriel"); Cliente c5 = new Cliente("Maria"); Cliente[] arrayClientes = {c1, c2, c3, c4, c5}; for (int x = 0 ; x < arrayClientes.length; x++){ if (arrayClientes[x] == null){ System.out.println("Cliente nao informado!"); } else { System.out.println(arrayClientes[x].nome); } } While A forma básica do comando while é a seguinte: while (expressao booleana) bloco de comandos Primeiro, a expressão booleana é avaliada. Se retornar true, o bloco de comandosé executado. Após cada execução do bloco de comandos, a expressão é novamente avaliada. While - exemplo Cliente c1 = new Cliente("Henrique"); Cliente c2 = new Cliente("Carlos"); Cliente c3 = new Cliente("Flavia"); Cliente c4 = new Cliente("Gabriel"); Cliente c5 = new Cliente("Maria"); Cliente[] arrayClientes = {c1, c2, c3, c4, c5}; int x = 0; while (x < arrayClientes.length){ if (arrayClientes[x] == null){ System.out.println("Cliente nao informado!"); } else { System.out.println(arrayClientes[x].nome); } x++; } Exercício 8 Crie um array chamado contas que contém 10 objetos criados a partir da classe Conta e depois navegue pelo array usando uma estrutura de repetição while avançando em direção ao seu final e somando os saldos de cada objeto de conta visitado. Ao finalizar, imprima o total acumulado. Do-While A forma básica do comando do-while é a seguinte: do bloco de comandos while (expressao booleana) Primeiro, o bloco de comandos é executado. Depois, a expressão booleana é avaliada. A diferença em relação ao while é que o bloco de comandos é executado ao menos uma vez. Do-While - exemplo Cliente c1 = new Cliente("Henrique"); Cliente c2 = new Cliente("Carlos"); Cliente c3 = new Cliente("Flavia"); Cliente c4 = new Cliente("Gabriel"); Cliente c5 = new Cliente("Maria"); Cliente[] arrayClientes = {c1, c2, c3, c4, c5}; int x = 0; do{ if (arrayClientes[x] == null){ System.out.println("Cliente nao informado!"); } else { System.out.println(arrayClientes[x].nome); } x++; } while (x < arrayClientes.length); Break e Continue Os comandos break e continue são uma forma de controlar o fluxo de execução dentro de um loop. break termina o loop sem a execução do resto dos comandos. continue pára a execução da iteração corrente, vai para o início do loop e inicia a próxima iteração. Exemplo: Switch (I) Imagine um programa que receba um número inteiro e retorne o mês correspondente: se número = 1 então mês = janeiro se número = 2 então mês = fevereiro se número = 3 então mês = março ... se número = 12 então mês = dezembro Isso poderia ser resolvido com comandos <<if- else>> aninhados. O comando <<switch>> fornece uma solução para este mesmo problema. Switch (II) instanceof instanceof é um operador usado para comparar uma referência com uma classe. A expressão será true se a referência for do tipo de uma classe ou subclasse testada, e false, caso contrário. Sintaxe: referência instanceof Classe Exemplo: Cliente c7 = new Cliente("Henrique"); if (c7 instanceof Cliente){ System.out.println("Este objeto foi instanciado a partir da classe Cliente!"); } Exercício 9 – Desafio! Crie no método main da classe AgenciaBancaria um array contendo 10 objetos criados a partir da classe Conta, chamado contas, e outro array contendo 5 objetos criados a partir da classe Cliente, chamado clientes, sendo que a cada duas contas criadas troca-se a titularidade das mesmas, seguindo a ordem do array contas e avançando pelo array de clientes para obter o próximo objeto do tipo Cliente. Imprima a relação de contas citando o respectivo saldo e o nome do titular. Slide 1 Slide 2 Slide 3 Slide 4 Slide 5 Slide 6 Slide 7 Slide 8 Slide 9 Slide 10 Slide 11 Slide 12 Slide 13 Slide 14 Slide 15 Slide 16 Slide 17 Slide 18 Slide 19 Slide 20 Slide 21 Slide 22 Slide 23 Slide 24 Slide 25 Slide 26 Slide 27 Slide 28 Slide 29 Slide 30 Slide 31 Slide 32 Slide 33 Slide 34 Slide 35
Compartilhar