Curso: Informática Modalidade: Subsequente Turno: N Turma: II Disciplina: Programação Orientada a Objetos Professor: André Gustavo Aluno (a): Lista de Exercícios Caro(a)s Alunos, Esta lista de exercícios tem como objetivo verificar o nível de aprendizagem da disciplina de Programação orientada a Objetos e estimular a prática de escrita de programas na linguagem Java. Algumas questões contêm assuntos que ainda não vimos em sala, como leitura de dados através do teclado, mas em anexo coloco um código Java que permite fazer esse tipo de ação. A lista de exercícios deve ser respondida em dupla. As respostas com um projeto do BlueJ zipado, devem ser enviadas exclusivamente para o email [email protected] até o dia 12/05 as 23:59:59. Todas as questões devem ser resolvidas utilizando apenas 1(um) projeto do BlueJ. As questões teóricas deve ser respondidas utilizando a seção de descrição de um projeto do BlueJ, como vocês podem ver na figura abaixo. Questões 1. Defina o que são classes e objetos. Qual a relação entre eles?! O que difere uma classe de um objeto 2. Descreva o que são atributos e métodos. 3. Qual o conceito de máquina virtual? Faça um comparativo entre as linguagens que não usam máquina virtual e as que usam. Quais são os pontos positivos x negativos 4. Quais são os principais tipos de dados da Linguagem Java? 5. Defina com suas palavras o conceito de compilador e linguagem de máquina 6. Escreva uma classe em Java chamada Aritmetica que possui um método testarInteiros, que recebe dois números inteiros e imprime na tela o resultado das quatro operações(+,-,*,/) 7. Dentro da classe Aritmetica, inclua um novo método que recebe dois número inteiros e retornar um valor booleano(true or fase) indicando se o primeiro número é múltiplo do segundo 8. Qual o propósito do operador new. O que acontece quando você o executa? 9. Crie uma classe chamada ContaBancaria, que terá 3 atributos: número da conta, número da agência e saldo. Construa os métodos get/set somente para os atributos número da conta e agência 10. Na mesma classe ContaBancaria, adicione comportamentos que permitam realizar um saque, depositar uma quantia, bem como retornar o valor do saldo 11. Crie uma classe chamada Cliente com os seguintes atributos: nome, endereço, telefone, rg e cpf. Escreva os métodos get/set para todos os atributos. Defina ainda um método chamado imprimir, para exibir todos os dados de um cliente. 12. Considere que toda Conta Bancária precisa de um correntista, que é um cliente. Defina uma característica chamada correntista na classe ContaBancaria. Escreva os métodos get/set para essa característica. 13. Crie uma classe chamada PrincipalBanco, defina o método main e crie no mínimo 2 clientes, 3 contas bancárias e realize operações de deposito, saque e visualização de saldo para os objetos criados. 14. Crie uma classe Data que representa uma data. Defina suas características. Escreva os métodos get/set para cada característica. Escreva um método chamado imprimirData que retorna um cadeia de caracteres exibindo a data no formato dd/mm/aaaa 15. Crie uma classe AritmeticaData, que possui um método chamado calculaDias, que recebe como parâmetro duas datas e calcula a diferença em dias entre essas datas. Considere que sempre a primeira data fornecida é maior do que a segunda. Considere para efeitos de simplificação que todo mês tem 30 dias e um ano com 365 dias. 16. Crie uma classe chamada PrincipalData, definindo o método main. Nessa classe solicite que o usuário digite duas datas, lendo separadamente dia, mês e ano de cada data e imprima na tela a diferença entre essas datas. Será necessário usar a classe Scanner e o método nextInt(). Veja as transparências da Aula04 17. A informatização de registros médico torna-se fundamental nos dias de hoje. O banco que contratou você para construir as classes dos exercícios anteriores está expandindo seus negócios. O banco passa administrar uma clínica especial para seus clientes. O primeiro passo é informatizar o prontuário de um cliente. Para isso defina a classe Prontuário, que deverá ter como informações: o cliente do prontuário, a data de nascimento do cliente, que deverá ser do tipo Data, além do peso e da altura do paciente. Construa os métodos get/set para essas características. Crie um método que imprime todas as informações do prontuário 18. Construa agora um método que calcule o IMC do paciente, baseado no seu peso e altura, retornando esse valor. Relembrando: 19. Com base no método anterior, crie um método chamado preDiagnosticar que informará a situação do paciente, com base no valor do IMC, de acordo com a tabela abaixo: IMC Situação Abaixo de 18.5 Você está abaixo peso ideal Entre 18.5 e 24.9 Você está no seu peso ideal Entre 25 e 29.9 Você está com sobrepeso Entre 30 e 34.9 Obesidade Grau I Entre 35 e 39.9 Obesidade Grau II Acima de 40 Obesidade Mórbida 20. Agora construa a classe PrincipalClinica, com o método main para testar as classes recém criadas. Crie pelo menos 2 Prontuários. Execute os métodos que imprime todas as informações do prontuário e também execute o método preDiagnosticar, informando na tela o retorno do método