Prévia do material em texto
35323 – Linguagem de Programação II Ciência da Computação – T. 2016 – 2017/01 Exercícios Prof. Gerson Groth 1) Crie uma classe Conta, que possua um saldo, os métodos para visualizarSaldo, depositar e sacar 2) Adicione um novo método atualizarConta na classe Conta, que atualiza essa o saldo dessa conta de acordo com uma taxa percentual (double) fornecida . 3) Crie duas subclasses da classe Conta: ContaCorrente e ContaPoupanca. Ambas devem sobrescrever o método atualizarConta: ContaCorrente deve atualizar-se com o dobro da taxa, e ContaPoupanca com o triplo da taxa 4) Sobrescreva o método depositar para a ContaCorrente, a fim de retirar uma taxa bancária de dez centavos de cada depósito. 5) Crie uma classe de Teste, e teste suas Contas Conta c = new Conta(); ContaCorrente cc = new ContaCorrente(); ContaPoupanca cp = new ContaPoupanca(); c.deposita(1000); cc.deposita(1000); cp.deposita(1000); c.atualiza(0.01); cc.atualiza(0.01); cp.atualiza(0.01); System.out.println(c.getSaldo()); System.out.println(cc.getSaldo()); System.out.println(cp.getSaldo()); 6) Rode o código a seguir da seguinte maneira Conta c = new Conta(); Conta cc = new ContaCorrente(); Conta cp = new ContaPoupanca(); Compila? Roda? O que muda? Qual é a utilidade disso? Realmente, essa não é a maneira mais útil do polimorfismo - veremos o seu real poder no próximo exercício. Porém existe uma utilidade de declararmos uma variável de um tipo menos específico do que o objeto realmente é. 7) Crie uma classe que seja responsável por fazer a atualização de todas as contas bancárias e gerar um relatório com o saldo anterior e saldo novo de cada uma das contas. Além disso, conforme atualiza as contas, o banco quer saber quanto do dinheiro do banco foi atualizado até o momento. Por isso, precisamos ir guardando o saldoTotal. O valor da atualização deve ser passado no construtor da classe AtualizadorDeContas. 35323 – Linguagem de Programação II Ciência da Computação – T. 2016 – 2017/01 Exercícios Prof. Gerson Groth Exercício 8: Crie uma classe chamada Ingresso que possui um valor em reais e um método imprimeValor(). a. crie uma classe VIP, que herda Ingresso e possui um valor adicional. Crie um método que retorne o valor do ingresso VIP (com o adicional incluído). b. crie uma classe Normal, que herda Ingresso e possui um método que imprime: "Ingresso Normal". c. crie uma classe CamaroteInferior (que possui a localização do ingresso e métodos para acessar e imprimir esta localização) e uma classe CamaroteSuperior, que é mais cara (possui valor adicional). Esta última possui um método para retornar o valor do ingresso. Ambas as classes herdam a classe VIP. Exercício 9: Crie a classe Imovel, que possui um endereço e um preço. a. crie uma classe Novo, que herda Imovel e possui um adicional no preço. Crie métodos de acesso e impressão deste valor adicional. b. crie uma classe Velho, que herda Imovel e possui um desconto no preço. Crie métodos de acesso e impressão para este desconto. Exercício 10: Um sistema de cadastro de clientes de uma empresa guarda informações sobre nomes, endereços e telefones. Além disso, caso o cliente seja uma pessoa física, seu número de CPF é armazenado e, caso o cliente seja uma pessoa jurídica, seu CNPJ e nome de fantasia da empresa devem ser guardados. A qualquer momento deve ser possível imprimir todos dados de um determinado cliente. Altere a modelagem a seguir e implemente as classes necessárias em Java utilizando os conceitos de polimorfismo e classes abstratas (não é necessário implementar o cadastro completo de clientes).