Sei sulla pagina 1di 7

UNIBRATEC

TI Programao Orientada a Objetos


Crystian Leo
Baseado no material da professora Karina Oliveira
Quarta Lista de Exerccios Conceitos OO e Mtodos Estticos
1) Conceitos Bsicos de Programao OO: Implementar as classes a seguir:
a) Classe: ContaCorrente.
i) Atributos da classe ContaCorrente:
numeroConta (inteiro) ! no pode receber um valor menor ou igual a zero;
correntista (string) ! no pode receber um valor nulo ou string vazia;
saldo (ponto-flutuante) ! no pode manter um valor menor que zero;
ii) Implementar apenas um construtor recebendo valores para os atributos numeroConta e
correntista da classe ContaCorrente.
iii) Utilizar a tcnica de encapsulamento apresentada no curso e implementar mtodos get e set
para todos os atributos da classe (ver observao abaixo).
iv) No implementar o mtodo set para o atributo saldo. O valor do atributo saldo s poder ser
alterado atravs dos mtodos deposita, saque e transfere detalhados a seguir.
v) Implementar o mtodo boolean deposita(double valor) que deposita um valor na conta
corrente. O mtodo retorna verdadeiro se o depsito foi realizado com sucesso ou falso em
caso contrrio. OBS: Verificar se o valor informado maior que zero.
vi) Implementar o mtodo boolean saque(double valor) que realiza um saque na conta
corrente. O mtodo retorna verdadeiro se o saque foi realizado com sucesso ou falso e caso
contrrio. OBS: Verificar se o valor informado maior que zero e se h saldo suficiente para
realizar o saque.
i) Implementar o mtodo boolean transfere(double valor, ContaCorrente c2) que realiza uma
transferncia de um valor da conta corrente para a conta corrente c2. O mtodo retorna
verdadeiro se a transferncia foi realizada com sucesso ou falso em caso contrrio. OBS:
Verificar se o valor informado maior que zero, se o objeto c2 no nulo e se h saldo
suficiente para realizar a transferncia.
b) Implementar uma aplicao chamada AplicacaoContas que instancia dois objetos do tipo
ContaCorrente, a partir de dados informados pelo usurio. Em seguida, o programa deve
oferecer um menu para o usurio com as seguintes opes:
i) Imprimir dados de uma conta. Para esta opo o usurio dever informar o nmero da conta;
ii) Realizar depsito. Para esta opo o usurio dever informar o nmero da conta e o valor
para depsito;
iii) Realizar saque. Para esta opo o usurio dever informar o nmero da conta e o valor para
saque;
iv) Realizar transferncia. Para esta opo o usurio dever informar o nmero da conta origem,
o nmero da conta destino e o valor para transferncia;
v) OBS: Para as opes de depsito, saque e transferncia, o programa deve imprimir na tela
uma mensagem indicando se o depsito, o saque ou a transferncia foi realizado com
sucesso ou no.
2) Conceitos Bsicos de Programao OO: Implementar as classes a seguir:
a) Classe: DVD.
i) Atributos da classe DVD:
estado (booleano) ! receber o valor true quando o DVD estiver ligado, e false em caso
contrrio. Defina, na classe DVD, duas constantes booleanas: LIGADO = true e
DESLIGADO = false.
operacaoEmExecucao (string) ! receber um dos valor pr-definidos (ver tabela abaixo)
de acordo com a operao que estiver sendo realizada pelo DVD. OBS: definir constantes
para manter os valores da tabela abaixo:
Constante Valor (string)
PARADO (string vazia)
REPRODUZINDO REPRODUZINDO O DVD...
EM_PAUSA REPRODUO DO DVD EM PAUSA...
VOLTANDO VOLTANDO O DVD...
AVANCANDO AVANANDO O DVD...

ii) Implementar apenas o construtor default que atribui o valor DESLIGADO para o atributo
estado e o valor PARADO para o atributo operacaoEmExecucao.
iii) Utilizar a tcnica de encapsulamento apresentada no curso e implementar apenas mtodos get
para todos os atributos.
iv) OBS: Os mtodos set dos atributos estado e operacaoEmExecucao no sero implementados
pois seus valores s podero ser alterados atravs dos mtodos liga, desliga, play, stop,
pause, volta e avana detalhados a seguir.
v) Implementar o mtodo void liga( ) que altera o estado do equipamento para LIGADO e
atribui o valor PARADO para o atributo operacaoEmExecucao.
vi) Implementar o mtodo void desliga( ) que altera o estado do equipamento para
DESLIGADO e atribui o valor PARADO para o atributo operacaoEmExecucao.
vii) Implementar o mtodo void play( ) que altera o valor do atributo operacaoEmExecucao para
REPRODUZINDO. OBS: Este mtodo s pode ser executado se o estado do equipamento
for LIGADO.
viii) Implementar o mtodo void stop( ) que altera o valor do atributo operacaoEmExecucao
para PARADO. OBS: Este mtodo s pode ser executado se o estado do equipamento for
LIGADO.
ix) Implementar o mtodo void pause( ) que altera o valor do atributo operacaoEmExecucao
para EM_PAUSA. OBS: Este mtodo s pode ser executado se o estado do equipamento for
LIGADO.
x) Implementar o mtodo void volta( ) que altera o valor do atributo operacaoEmExecucao
para VOLTANDO. OBS: Este mtodo s pode ser executado se o estado do equipamento for
LIGADO.
xi) Implementar o mtodo void avanca( ) que altera o valor do atributo operacaoEmExecucao
para AVANCANDO. OBS: Este mtodo s pode ser executado se o estado do equipamento
for LIGADO.
b) Implementar uma aplicao chamada AplicacaoDVD que instancia um objeto do tipo DVD e
oferece um menu com as opes: liga, desliga, play, stop, pause, volta, avana e sair, permitindo
que o usurio possa manipular seu equipamento. OBS: Todas as vezes que o usurio selecionar
uma opo do menu, deve-se imprimir na tela o estado e a operao corrente do equipamento.
3) Conceitos Bsicos de Programao OO: Implementar as classes a seguir:
a) Classe: Deducao
i) Atributos da classe Deducao:
descricao (string) ! no pode receber um valor nulo ou string vazia;
valor (ponto-flutuante) ! no pode receber um valor menor ou igual a zero.
ii) Para a classe Deducao implementar apenas um construtor recebendo valores para todos os
atributos.
iii) Utilizar a tcnica de encapsulamento apresentada no curso e implementar mtodos get e set
para todos os atributos.
b) Classe: ImpostoDeRenda
i) Atributos da classe ImpostoDeRenda:
nomeContribuinte (string) ! no pode receber um valor nulo ou string vazia;
cpf (string) ! no pode receber um valor nulo ou string vazia;
rendaAnual (ponto-flutuante) ! no pode receber um valor menor ou igual a zero;
deducoes (Array de objetos do tipo Deducao) ! no pode manter um array nulo.
ii) Para a classe ImpostoDeRenda implementar apenas um construtor recebendo valores para os
atributos nomeContribuinte, cpf e rendaAnual. OBS: este construtor dever inicializar o
atributo deducoes com um array de tamanho 3.
iii) Utilizar a tcnica de encapsulamento apresentada no curso e implementar mtodos get e set
para todos os atributos (ver observao abaixo).
iv) OBS: No implementar o mtodo set para o atributo deducoes da classe ImpostoDeRenda. O
atributo deducoes s ser manipulado pelo mtodo inserirDeducao detalhado a seguir.
v) Implementar o mtodo boolean inserirDeducao(Deducao dec) que insere um objeto do tipo
Deducao no array de dedues do ImpostoDeRenda. O mtodo retorna verdadeiro se a
deduo foi inserida no array com sucesso e falso quando o array de dedues estiver cheio
ou se o objeto dec passado como parmetro nulo.
vi) Implementar o mtodo double calculaImposto( ) que retorna o valor do imposto de renda do
contribuinte segundo a seguinte frmula:
IR = ((rendaAnual SOMA(dedues)) * Alquota)
Renda Anual (R$) Alquota
0,00 a 13968,00 0%
13968,01 a 27912,00 15%
Acima de 27912,00 27,5%

c) Implementar uma aplicao chamada AplicacaoImpostoDeRenda que instancia um objeto do
tipo ImpostoDeRenda, a partir do nome do contribuinte, do CPF e da renda anual informados
pelo usurio. Em seguida, o programa deve oferecer um menu para o usurio com as seguintes
opes:
i) Incluir deduo. O usurio dever informar os dados da deduo a ser inserida na declarao
de imposto.
ii) Imprimir resumo da declarao de imposto de renda. Nesta opo, o programa deve imprimir
os valores de todos os atributos do objeto ImpostoDeRenda instanciado (incluindo as
dedues se houverem), bem como imprimir o valor do seu imposto de renda calculado.
4) Conceitos bsicos de Programao OO; Mtodo toString( ): Implementar as classes a seguir:
a) Classe: Pessoa
i) Atributos da classe Pessoa:
nome (string) ! no pode receber um valor nulo ou string vazia;
idade (inteiro) ! no pode receber um valor menor que 0;
filhos (Array de objetos do tipo Pessoa) ! no pode manter um array nulo.
ii) Implementar apenas um construtor recebendo valores para os atributos nome e idade da
classe Pessoa. OBS: este construtor dever inicializar o atributo filhos com um array de
tamanho 3.
iii) Utilizar a tcnica de encapsulamento apresentada no curso e implementar mtodos get e set
para todos os atributos (ver observao abaixo).
iv) OBS: No implementar o mtodo set para o atributo filhos. O atributo filhos s ser
manipulado pelo mtodo cadastrarFilho da classe Pessoa detalhado a seguir.
v) O mtodo boolean cadastrarFilho(Pessoa filho) insere um objeto do tipo Pessoa no array
de filhos da Pessoa. O mtodo retorna verdadeiro se o filho foi cadastrado com sucesso e
falso quando o array de filhos estiver cheio ou se o objeto filho passado como parmetro
nulo.
vi) Na classe Pessoa, implementar o mtodo String toString( ) que retorna uma representao
string de um objeto da classe Pessoa no seguinte formato:

"#$% &'(' )*+,-*.*/'( 012 3 04/4))5(*2 *+,(*+*( 6272) 2) 7'72) 72) .*-82) 72) .*-82) 9)4
82:;4(4+<= ',40') 2 02+4 74 /'7' :+ 72) .*-82)>
b) Implementar uma aplicao chamada AplicacaoPessoa que instancia um objeto do tipo Pessoa,
a partir do nome e da idade informados pelo usurio. Em seguida, o programa deve oferecer um
menu para o usurio com as seguintes opes:
i) Cadastrar filho. O usurio dever informar os dados do filho a ser cadastrado;
ii) Imprimir dados da Pessoa. Nesta opo, o programa deve imprimir os valores de todos os
atributos do objeto Pessoa instanciado fazendo uso do mtodo toString implementado.
5) Conceitos Bsicos de Programao OO; Mtodos Estticos: Implementar as classes a seguir:
a) Classe: Data
i) Atributos da classe Data:
dia (inteiro) ! no pode receber um valor menor que 1 ou maior que 31;
mes (inteiro) ! no pode receber um valor menor que 1 ou maior que 12;
ano (inteiro) ! no pode receber um valor menor que 2000.
b) Classe: Departamento
i) Atributos da classe Departamento:
codigo (inteiro) ! no pode receber um valor menor ou igual a 0;
nome (string) ! no pode receber um valor nulo ou string vazia.
c) Classe: Professor
i) Atributos da classe Professor:
codigo (inteiro) ! no pode receber um valor menor que 0;
nome (string) ! no pode receber um valor nulo ou string vazia;
dataAdmissao (tipo Data) ! no pode receber um valor nulo;
departamento (tipo Departamento) ! no pode receber um valor nulo.
d) Classe: Disciplina
i) Atributos da classe Disciplina:
nome (string) ! no pode receber um valor nulo ou string vazia;
curso (string) ! no pode receber um valor nulo ou string vazia;
professor (tipo Professor) ! no pode receber um valor nulo;
quantidadeAlunos (inteiro) ! no pode receber um valor menor que 30.
e) Para todas as classes especificadas acima:
i) Implementar apenas um construtor recebendo valores para todos os atributos.
ii) Utilizar a tcnica de encapsulamento apresentada no curso e implementar mtodos get e set
para todos os atributos.
f) Implementar uma aplicao chamada AplicacaoDisciplina que instancia um objeto do tipo
Disciplina, a partir de dados informados pelo usurio.
i) Na classe AplicacaoDisciplina implemente os seguintes mtodos estticos:
void alteraDadosGerais(Disciplina d). Que permite alterar o nome, o curso e a quantidade
de alunos da disciplina;
void alteraProfessor(Disciplina d). Que permite alterar o professor da disciplina;
void imprime(Disciplina d). Que permite imprimir todos os dados da disciplina.
ii) Em seguida, a aplicao deve oferecer um menu permitindo que o usurio escolha se deseja
alterar os dados gerais da disciplina, alterar o professor da disciplina ou imprimir os dados da
disciplina.
6) Conceitos bsicos de Programao OO: Implementar as classes a seguir:
a) Classe: Livro
i) Atributos da classe Livro:
codigo (inteiro) ! no pode receber um valor menor que zero;
titulo (string) ! no pode receber um valor nulo ou string vazia;
autor (string) ! no pode receber um valor nulo ou string vazia.
ii) Implementar apenas um construtor recebendo valores para todos os atributos.
iii) Utilizar a tcnica de encapsulamento apresentada no curso e implementar mtodos get e set
para todos os atributos.
b) Classe: CadastroLivros
i) Atributos da classe CadastroLivros:
livros (Array de objetos do tipo Livro) ! no pode manter um array nulo.
quantLivros (inteiro) ! Representa a quantidade de livros cadastrados e no pode manter
um valor menor que zero.
ii) Implementar apenas um construtor default inicializando o atributo livros com um array de
tamanho 100 e o atributo quantLivros com o valor 0.
iii) Utilizar a tcnica de encapsulamento apresentada no curso e implementar apenas os mtodos
get para todos os atributos (ver observao abaixo).
iv) OBS: No implementar os mtodos set para os atributos livros e quantLivros da classe
CadastroLivros. Os atributos da classe CadastroLivros sero manipulados pelos mtodos
inserir, buscar, remover e alterar detalhados a seguir.
v) Mtodos da classe CadastroLivros:
boolean inserir(Livro liv) que insere um objeto do tipo Livro no array de livros da classe
CadastroLivros. Para cada livro inserido, o atributo quantLivros incrementado de 1. O
mtodo retorna verdadeiro se o livro foi inserido com sucesso e falso em uma das trs
situaes seguintes: (1) Quando o array de livros estiver cheio; (2) Se o objeto liv passado
como parmetro nulo; ou, (3) Se j existe um livro cadastrado com o mesmo cdigo.
Livro buscar(int cod) que retorna o objeto do tipo Livro identificado pelo cdigo informado
como parmetro. Caso o objeto Livro no seja encontrado retornar o valor null.
boolean remover(int cod) que remove o objeto do tipo Livro identificado pelo cdigo
informado como parmetro. Para cada livro removido, o atributo quantLivros
decrementado de 1. O mtodo retorna verdadeiro se o livro foi removido com sucesso e falso
em caso contrrio.
boolean alterar(Livro novoLivro) que altera o objeto do tipo Livro identificado pelo
cdigo do objeto Livro informado como parmetro. O mtodo retorna verdadeiro se o livro
foi alterado com sucesso e falso em caso contrrio. A alterao de um livro consiste em
trocar o objeto Livro, previamente cadastrado com o mesmo cdigo, pelo novo objeto Livro
informado como parmetro. OBS: Verificar se o objeto novoLivro passado como parmetro
no nulo.
c) Implementar uma aplicao chamada AplicacaoCadastroLivros que cria um objeto do tipo
CadastroLivros e oferece um menu com as opes: inserir, buscar, remover, alterar, listar todos
os livros cadastrados e sair, permitindo que o usurio possa cadastrar, buscar, excluir, alterar e
listar dados sobre livros.

Potrebbero piacerti anche