Difference between revisions of "Exercício herança (Pessoa)"
m (moved CSharp: Exercício herança (Pessoa) to Exercício herança (Pessoa): Deixar independente de linguagem.) |
(→Enunciado) |
||
Line 2: | Line 2: | ||
=== Etapa 1 === | === Etapa 1 === | ||
− | Seguindo a especificação abaixo, desenvolva | + | Seguindo a especificação abaixo, desenvolva três classes: Pessoa, PessoaFisica e PessoaJuridica, todas do namespace/pacote ExercicioHeranca. |
*Pessoa: deverá ter um método abstrato de nome '''CalcularTarifa''' que deverá retornar um double e não receber parâmetros. | *Pessoa: deverá ter um método abstrato de nome '''CalcularTarifa''' que deverá retornar um double e não receber parâmetros. | ||
− | *PessoaFisica: deverá herdar de '''Pessoa''', ter duas propriedades públicas '''Nome''' e '''Saldo''' respectivamente do tipo string e double além de implementar o método '''CalcularTarifa''' que deverá retornar '''Saldo''' multiplicado por 0.1. | + | *PessoaFisica: deverá herdar de '''Pessoa''', ter duas propriedades públicas '''Nome''' e '''Saldo''' respectivamente do tipo string/String e double além de implementar o método '''CalcularTarifa''' que deverá retornar '''Saldo''' multiplicado por 0.1. |
− | *PessoaJuridica: deverá herdar de '''Pessoa''', ter também duas propriedades públicas '''RazaoSocial''' (string) e '''Limite''' (double não negativo). A implementação do método '''CalcularTarifa''' deverá retornar '''Limite''' multiplicado por 0.2. | + | *PessoaJuridica: deverá herdar de '''Pessoa''', ter também duas propriedades públicas '''RazaoSocial''' (string/String) e '''Limite''' (double não negativo). A implementação do método '''CalcularTarifa''' deverá retornar '''Limite''' multiplicado por 0.2. |
− | Sempre que o usuário tentar setar o valor de '''Limite''' para um número negativo deve-se lançar uma exceção | + | Sempre que o usuário tentar setar o valor de '''Limite''' para um número negativo deve-se lançar uma exceção com a mensagem "Limite deve ser um número positivo ou zero". |
Crie os atributos e outros mecanismos necessários para implementar o solicitado. | Crie os atributos e outros mecanismos necessários para implementar o solicitado. | ||
Line 19: | Line 19: | ||
=== Etapa 4 === | === Etapa 4 === | ||
− | Em PessoaJuridica lance uma exceção | + | Em PessoaJuridica lance uma exceção e não permita que o valor de '''Saldo''' seja setado para um valor menor que o oposto do '''Limite'''. |
Latest revision as of 16:56, 4 August 2010
Enunciado
Etapa 1
Seguindo a especificação abaixo, desenvolva três classes: Pessoa, PessoaFisica e PessoaJuridica, todas do namespace/pacote ExercicioHeranca.
- Pessoa: deverá ter um método abstrato de nome CalcularTarifa que deverá retornar um double e não receber parâmetros.
- PessoaFisica: deverá herdar de Pessoa, ter duas propriedades públicas Nome e Saldo respectivamente do tipo string/String e double além de implementar o método CalcularTarifa que deverá retornar Saldo multiplicado por 0.1.
- PessoaJuridica: deverá herdar de Pessoa, ter também duas propriedades públicas RazaoSocial (string/String) e Limite (double não negativo). A implementação do método CalcularTarifa deverá retornar Limite multiplicado por 0.2.
Sempre que o usuário tentar setar o valor de Limite para um número negativo deve-se lançar uma exceção com a mensagem "Limite deve ser um número positivo ou zero".
Crie os atributos e outros mecanismos necessários para implementar o solicitado.
Etapa 2
Em PessoaFisica crie duas propriedades somente leitura: Credito e Debito. Crédito exibirá o valor de Saldo quando este for positivo ou zero caso contrário. Débito exibirá o oposto do valor de Saldo quando este for negativo ou zero caso contrário.
Etapa 3
Mova as propriedades Credito, Debito e Saldo para Pessoa e faça os ajustes necessários.
Etapa 4
Em PessoaJuridica lance uma exceção e não permita que o valor de Saldo seja setado para um valor menor que o oposto do Limite.