Ministério da Educação Universidade Tecnológica Federal do Paraná Departamento Acadêmico de Computação Disciplina: Fundamentos de Programação II Prof. Rafael Henrique Dalegrave Zottesso Exercícios – Herança 1. Construa a hierarquia de classes apresentada abaixo: a) Escreva uma classe Pessoa. Uma pessoa possui um nome, um CPF e um endereço. Esses atributos estão encapsulados, todos podem ser alterados e consultados quando necessário, e podem ou não ser informados quando uma pessoa é criada. b) Escreva uma classe Cliente. Clientes são pessoas que possuem um limite de crédito (correspondente à quantidade máxima de dinheiro que o cliente pode dever) e um montante em dívida (correspondente ao valor total da dívida do cliente). Os atributos dos clientes também precisam estar encapsulados e podem ser consultados/alterados a qualquer momento. Apenas o valor máximo de crédito deve ser informado no momento da criação dos objetos. Sobre um cliente, é possível ainda obter o saldo, que informa a diferença entre os valores de crédito máximo e o montante da dívida. c) Escreva uma classe Empregado. Um empregado é uma pessoa que possui um salário base e a porcentagem de imposto de renda retida na fonte. É possível calcular o salário real do empregado, diminuindo do salário base a porcentagem referente ao imposto. Os atributos são encapsulados, podem ser alterados/consultados a qualquer momento e devem ser obrigatoriamente informados no momento da criação dos objetos. d) Crie um programa principal que instancie pessoas, clientes e empregados. Mostre que empregados e clientes possuem as mesmas operações de pessoas. Teste as operações implementadas. 2. Crie uma classe Conta Bancária, que possui um titular, saldo, limite e que seja possível sacar, depositar e consultar saldo. Além do saldo, é necessário saber o saldo mínimo ( não é atributo), já que pessoas que possuem limites de crédito podem ter o saldo menor que zero, desde que não exceda o limite. Quando o saldo de uma conta está abaixo de zero, a pessoa está utilizando o cheque especial. Quando uma conta é criada, o limite deve obrigatoriamente ser informado. Na operação de saque, é necessário verificar se o valor a ser retirado não excede o saldo mínimo. Existem basicamente dois tipos de contas bancárias: 1. Contas Corrente podem ter limites de crédito (o saldo pode ser menor que zero). Por esta razão, deve ser possível verificar se a conta está no cheque especial ou não. Em caso afirmativo, essa operação deve emitir uma mensagem informando quantos reais estão excedidos na conta. 2. Contas Poupança possuem dia de aniversário mensal e uma taxa de rendimento. Esse dia é definido junto com a abertura da conta poupança e nunca pode ser alterado, embora possa ser consultado. Na data do aniversário da poupança, ela rende. Portanto, é necessário que haja uma operação que calcule o rendimento da poupança com base no saldo atual, e adicione esse rendimento ao saldo. As poupanças não tem limite, por isso, ele é zero. Crie um programa principal que instancie contas, contas poupança e contas corrente. Teste as operações, alterando, sempre que possível o valor dos atributos.