SlideShare uma empresa Scribd logo
1 de 4
Baixar para ler offline
MINISTÉRIO DA EDUCAÇÃO
SECRETARIA DE EDUCAÇÃO PROFISSIONAL E TECNOLÓGICA
INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO TRIÂNGULO MINEIRO
CAMPUS UBERLÂNDIA CENTRO
TECNOLOGIA EM SISTEMAS PARA INTERNET
Turma: 3º PERÍODO
Unidade Curricular: PROGRAMAÇÃO ORIENTADA A OBJETOS
Professor: WILL ROGER PEREIRA
LISTA 2-1
Obs: Para todos os exercícios, crie pelo menos 2 (dois) objetos, inicialize os atributos utilizando os construtores
(exceto quando especificado no diagrama), e execute todos os métodos públicos para demonstrar suas
funcionalidades.
Obs2: As especificações e/ou restrições para os valores dos atributos sempre se encontrarão neles!!! Caso este valor
esteja fora das especificações dentro de um método, sempre mostre uma mensagem de erro. No caso dos
construtores, caso aconteça algum problema com os atributos, atribua valores padrões.
Obs3: O levantamento de restrições também é de sua responsabilidade. Portanto, sempre que encontrar alguma
irregularidade na execução de um método, informe este erro.
Obs4: LEIA, NA ÍNTEGRA, A DESCRIÇÃO DE TODOS OS ATRIBUTOS E MÉTODOS.
1ª Questão
Classe Cachorro:
- nome : String  Nome do Cachorro. Não pode ser uma String vazia.
- idade : int  Idade do Cachorro. Deve ser um valor Natural.
- numcachorros : int = 0  Total de Cachorros criado. A cada Cachorro criado, incremente este atributo de classe.
- numfilhotes : int = 0  Quantidade de filhotes que um Cachorro gerou.
- totalfilhotes : int = 0  Total de filhotes gerados por todos os Cachorros.
+ Cachorro(nome : String, idade : int)  Construtor.
+ reproduz() : void  O Cachorro gera um filhote. Mostre na tela que isto ocorreu, identificando o Cachorro no processo.
Incremente as quantidades de filhotes gerados.
+ reproduz(filhotes : int) : void  O Cachorro gera uma quantidade de filhotes presente no argumento. Utilize o método
reproduz anterior no processo.
+ toString() : String  Retorna as informações do Cachorro, para ser mostrado na tela. Não retorne as informações da
classe.
+ infoCanil() : void  Mostra na tela as informações da classe.
_________________________________________________________________________________________________
2ª Questão
Classe ContaPoupanca:
- titular : String  Nome do titular da ContaPoupanca. Não pode ser uma String vazia.
- saldo : double = 0.0  Saldo da ContaPoupanca. Não pode ser um número negativo.
- numcontas : int = 0  Total de ContasPoupanca criadas no banco. A cada conta criada, incremente este atributo de
classe.
- totaldinheiro : double = 0.0  Total de saldo presente no banco. Quando entrar dinheiro ou sair dinheiro do banco,
modifique este atributo de classe.
+ ContaPoupanca(titular : String)  Construtor.
+ toString() : String  Retorna as informações da ContaPoupanca. Não mostre informações referentes a todas as
ContasPoupanca.
+ infoBanco() : void  Mostra na tela as informações referentes ao conjunto de ContasPoupanca, ou seja, o banco:
Número de contas criadas e total de saldo presente no banco.
+ saca(valor : double) : void  Saca determinado valor da ContaPoupanca. O argumento não pode ser negativo.
+ deposita(valor : double) : void  Deposita determinado valor na ContaPoupanca. O argumento não pode ser negativo.
_________________________________________________________________________________________________
3ª Questão
Classe Funcionario:
- nome : String  Nome do Funcionario. Não pode ser uma String vazia.
- salario : double  Importância recebida como parte da remuneração do Funcionario. Não pode ser menor que o salário
mínimo(faça uma pesquisa para saber o valor vigente).
- bonificacao : double  Porcentagem utilizada para compor a remuneração do Funcionario. Não pode ser um valor
negativo.
- valerefeicao : double = 393.0  Vale-refeição recebido por todos os Funcionarios para alimentação.
+ Funcionario(nome : String, salário : double, bonificação : double)  Construtor.
+ getValeRefeicao() : double  Retorna o valor do vale-refeição dos funcionários.
+ setValeRefeicao(vale : double) : void  Modifica o valor do vale-refeição dos funcionários, baseado no argumento. O
vale-refeição nunca poderá diminuir.
+ toString() : String  Retorna as informações do Funcionario, acrescidos de seu ganho mensal e ganho anual, além do
vale-refeição de todos os funcionários.
+ setBonificacao(porcentagem : double) : void  Modifica a bonificacao baseado no argumento.
+ setSalario(salario : double) : void  Modifica o salario do Funcionario baseado no argumento. O salário sempre deverá
aumentar quando modificado.
+ calcGanhoMensal() : double  Calcula o ganho mensal do Funcionario, baseado no salário e na bonificação aplicada
sobre o salário. Também deve ser levado em consideração o vale-refeição.
+ calcGanhoAnual() : double  Calcula o ganho anual, baseando-se no ganho mensal do ano inteiro, considerando a
gratificação natalina.
_________________________________________________________________________________________________
4ª Questão
Classe ContaCorrente:
- titular : String  Nome do titular da ContaCorrente. Não pode ser uma String vazia.
- saldo : double = 0.0  Saldo da ContaCorrente. Deve ser sempre maior que o negativo de limite.
- histórico : String = “”  String que armazenará o histórico de operações da ContaCorrente.
- limite : double  Limite da ContaCorrente. Não pode ser um valor negativo. Nunca poderá ser menor que o negativo de
saldo.
- historicobanco : String = “”  String que armazenará o histórico de operações de todas as ContasCorrente.
- tarifa : double = 1.50  Tarifa cobrada nas operações de saque e geração de extrato.
- numcontas : int = 0  Total de ContasCorrente criadas no banco. A cada conta criada, incremente este atributo de
classe.
- saldototal : double = 0.0  Total de saldo presente no banco. Quando entrar dinheiro ou sair dinheiro do banco,
modifique este atributo de classe.
+ ContaCorrente (titular : String, limite : double)  Construtor.
+ toString() : String  Retorna as informações da ContaCorrente, exceto o histórico.
- registraOperacao(op : String) : void  Registra determinada operação(op) realizada no histórico, dependendo da
operação realizada.
- registraOperacaoBanco(op : String) : void  Registra determinada operação(op) realizada no histórico, dependendo da
operação realizada. Esta operação será registrada no histórico do banco e deverá sempre acompanhar o nome do titular.
+ setLimite(limite : double) : void  Modifica o limite de acordo com o argumento.
+ setTarifa(valor : double) : void  Modifica a tarifa do banco de acordo com o argumento.
- cobraTarifa() : boolean  Cobra tarifa por operação, dependendo se há saldo disponível na ContaCorrente. Retorna
true se a tarifa for cobrada com sucesso, e false caso contrário.
+ saca(valor : double) : void  Retira determinado valor da ContaCorrente. O argumento não pode ser negativo.
Operação tarifada. Necessita de registro no histórico e no histórico do banco em caso de sucesso. Além de considerar o
valor do saque, deve-se considerar se a tarifa também pode ser cobrada sem que o saldo fique inválido.
+ deposita(valor : double) : void  Deposita determinado valor na ContaCorrente. O argumento não pode ser negativo.
Necessita de registro no histórico e no histórico do banco em caso de sucesso.
+ geraExtrato() : void  Mostra na tela, o histórico da conta, somente se a tarifa puder ser cobrada com sucesso.
Operação tarifada. Necessita de registro no histórico e no histórico do banco.
+ geraExtratoBanco() : void  Mostra na tela, o histórico do banco.
_________________________________________________________________________________________________

Mais conteúdo relacionado

Mais procurados

Linguagem C - Structs [exercícios]
Linguagem C - Structs [exercícios]Linguagem C - Structs [exercícios]
Linguagem C - Structs [exercícios]Matheus Alves
 
Ficha de trabalho 3
Ficha de trabalho 3Ficha de trabalho 3
Ficha de trabalho 3IEFP
 
Ficha de trabalho 2
Ficha de trabalho 2Ficha de trabalho 2
Ficha de trabalho 2IEFP
 
Exercícios - Herança - Java
Exercícios - Herança - JavaExercícios - Herança - Java
Exercícios - Herança - JavaArthur Emanuel
 
Apostila de matematica_ii
Apostila de matematica_iiApostila de matematica_ii
Apostila de matematica_iiJuliano Machado
 
Ficha de trabalho 1
Ficha de trabalho 1Ficha de trabalho 1
Ficha de trabalho 1IEFP
 
Linguagem de Programação estruturada com Java-Aula03
Linguagem de Programação estruturada com Java-Aula03Linguagem de Programação estruturada com Java-Aula03
Linguagem de Programação estruturada com Java-Aula03Elvis Araújo
 

Mais procurados (10)

Linguagem C - Structs [exercícios]
Linguagem C - Structs [exercícios]Linguagem C - Structs [exercícios]
Linguagem C - Structs [exercícios]
 
Java Lista Exercicios 05
Java Lista Exercicios 05Java Lista Exercicios 05
Java Lista Exercicios 05
 
Ficha de trabalho 3
Ficha de trabalho 3Ficha de trabalho 3
Ficha de trabalho 3
 
Ficha de trabalho 2
Ficha de trabalho 2Ficha de trabalho 2
Ficha de trabalho 2
 
Aula 3 - 06/04/11
Aula 3 - 06/04/11Aula 3 - 06/04/11
Aula 3 - 06/04/11
 
Exercícios - Herança - Java
Exercícios - Herança - JavaExercícios - Herança - Java
Exercícios - Herança - Java
 
Lista algoritmos 1
Lista algoritmos 1Lista algoritmos 1
Lista algoritmos 1
 
Apostila de matematica_ii
Apostila de matematica_iiApostila de matematica_ii
Apostila de matematica_ii
 
Ficha de trabalho 1
Ficha de trabalho 1Ficha de trabalho 1
Ficha de trabalho 1
 
Linguagem de Programação estruturada com Java-Aula03
Linguagem de Programação estruturada com Java-Aula03Linguagem de Programação estruturada com Java-Aula03
Linguagem de Programação estruturada com Java-Aula03
 

Destaque (7)

Lista 1 8 java
Lista 1 8 javaLista 1 8 java
Lista 1 8 java
 
Response to brief
Response to briefResponse to brief
Response to brief
 
Facebook Policy Primer
Facebook Policy PrimerFacebook Policy Primer
Facebook Policy Primer
 
Instructivo etoys
Instructivo etoysInstructivo etoys
Instructivo etoys
 
Aula 1 8
Aula 1 8Aula 1 8
Aula 1 8
 
Aula 1 4
Aula 1 4Aula 1 4
Aula 1 4
 
1501 1516-1438
1501 1516-14381501 1516-1438
1501 1516-1438
 

Semelhante a Programação Orientada a Objetos

Introdução à análise orientada a objetos parte 1
Introdução à análise orientada a objetos parte 1Introdução à análise orientada a objetos parte 1
Introdução à análise orientada a objetos parte 1ariovaldodias
 
Introdução à análise orientada a objetos parte 1
Introdução à análise orientada a objetos parte 1Introdução à análise orientada a objetos parte 1
Introdução à análise orientada a objetos parte 1ariovaldodias
 
Tutorial java orientação a objetos parte 1
Tutorial java orientação a objetos parte 1Tutorial java orientação a objetos parte 1
Tutorial java orientação a objetos parte 1Elaine Cecília Gatto
 
O que você acha que sabe sobre banco de dados
O que você acha que sabe sobre banco de dadosO que você acha que sabe sobre banco de dados
O que você acha que sabe sobre banco de dadosMatheus de Oliveira
 
Exercícios de programação orientado a objeto
Exercícios de programação orientado a objetoExercícios de programação orientado a objeto
Exercícios de programação orientado a objetoGleyciana Garrido
 
02 JAVAEstrutura sequencial (slides).pptx
02 JAVAEstrutura sequencial (slides).pptx02 JAVAEstrutura sequencial (slides).pptx
02 JAVAEstrutura sequencial (slides).pptxwilliam Sarti José
 
Exercicio no1 poo_linguagemprogramacao1
Exercicio no1 poo_linguagemprogramacao1Exercicio no1 poo_linguagemprogramacao1
Exercicio no1 poo_linguagemprogramacao1jucibs
 

Semelhante a Programação Orientada a Objetos (20)

Lista 2 4
Lista 2 4Lista 2 4
Lista 2 4
 
Lista 2 5
Lista 2 5Lista 2 5
Lista 2 5
 
Introdução à análise orientada a objetos parte 1
Introdução à análise orientada a objetos parte 1Introdução à análise orientada a objetos parte 1
Introdução à análise orientada a objetos parte 1
 
Introdução à análise orientada a objetos parte 1
Introdução à análise orientada a objetos parte 1Introdução à análise orientada a objetos parte 1
Introdução à análise orientada a objetos parte 1
 
Tutorial Java: Herança
Tutorial Java: HerançaTutorial Java: Herança
Tutorial Java: Herança
 
Cea030.lista.04
Cea030.lista.04Cea030.lista.04
Cea030.lista.04
 
Lista 1 7 java
Lista 1 7 javaLista 1 7 java
Lista 1 7 java
 
Tutorial java orientação a objetos parte 1
Tutorial java orientação a objetos parte 1Tutorial java orientação a objetos parte 1
Tutorial java orientação a objetos parte 1
 
Tutorial Java: Polimorfismo
Tutorial Java: PolimorfismoTutorial Java: Polimorfismo
Tutorial Java: Polimorfismo
 
Aula 3 algoritmos
Aula 3   algoritmosAula 3   algoritmos
Aula 3 algoritmos
 
Ns tutorial so
Ns tutorial soNs tutorial so
Ns tutorial so
 
O que você acha que sabe sobre banco de dados
O que você acha que sabe sobre banco de dadosO que você acha que sabe sobre banco de dados
O que você acha que sabe sobre banco de dados
 
Exercícios de programação orientado a objeto
Exercícios de programação orientado a objetoExercícios de programação orientado a objeto
Exercícios de programação orientado a objeto
 
Estrutura de repetição
Estrutura de repetiçãoEstrutura de repetição
Estrutura de repetição
 
Modulo02
Modulo02Modulo02
Modulo02
 
Java 05 Oo Basica
Java 05 Oo BasicaJava 05 Oo Basica
Java 05 Oo Basica
 
02 JAVAEstrutura sequencial (slides).pptx
02 JAVAEstrutura sequencial (slides).pptx02 JAVAEstrutura sequencial (slides).pptx
02 JAVAEstrutura sequencial (slides).pptx
 
Exercicio no1 poo_linguagemprogramacao1
Exercicio no1 poo_linguagemprogramacao1Exercicio no1 poo_linguagemprogramacao1
Exercicio no1 poo_linguagemprogramacao1
 
Base de conhecimento
Base de conhecimentoBase de conhecimento
Base de conhecimento
 
decisão aninhada programaçao de cmputadores
decisão aninhada programaçao de cmputadoresdecisão aninhada programaçao de cmputadores
decisão aninhada programaçao de cmputadores
 

Mais de Aparicio Junior

Mock test structure TOEFL ITP
Mock test structure TOEFL ITPMock test structure TOEFL ITP
Mock test structure TOEFL ITPAparicio Junior
 
Mock test reading TOEFL ITP
Mock test reading TOEFL ITPMock test reading TOEFL ITP
Mock test reading TOEFL ITPAparicio Junior
 
Mock Test Listening TOEFL ITP
Mock Test Listening TOEFL ITPMock Test Listening TOEFL ITP
Mock Test Listening TOEFL ITPAparicio Junior
 
General view of the TOEFL ITP
General view of the TOEFL ITPGeneral view of the TOEFL ITP
General view of the TOEFL ITPAparicio Junior
 
HERANÇA - Programação Orientada a Objetos JAVA
HERANÇA - Programação Orientada a Objetos JAVAHERANÇA - Programação Orientada a Objetos JAVA
HERANÇA - Programação Orientada a Objetos JAVAAparicio Junior
 
Banco de Dados - Junções Externas e internas
Banco de Dados - Junções Externas e internasBanco de Dados - Junções Externas e internas
Banco de Dados - Junções Externas e internasAparicio Junior
 
Aula sobre Programação Orientada a Objetos em Java
Aula sobre Programação Orientada a Objetos em JavaAula sobre Programação Orientada a Objetos em Java
Aula sobre Programação Orientada a Objetos em JavaAparicio Junior
 
Aula Programação Orientada a Objetos em Java
Aula Programação Orientada a Objetos em JavaAula Programação Orientada a Objetos em Java
Aula Programação Orientada a Objetos em JavaAparicio Junior
 
Estrutura de Dados - PILHAS
Estrutura de Dados - PILHASEstrutura de Dados - PILHAS
Estrutura de Dados - PILHASAparicio Junior
 
Tutorial instalacão java
Tutorial instalacão javaTutorial instalacão java
Tutorial instalacão javaAparicio Junior
 

Mais de Aparicio Junior (20)

Tips For the TOELF ITP
Tips For the TOELF ITPTips For the TOELF ITP
Tips For the TOELF ITP
 
Mock test structure TOEFL ITP
Mock test structure TOEFL ITPMock test structure TOEFL ITP
Mock test structure TOEFL ITP
 
Mock test reading TOEFL ITP
Mock test reading TOEFL ITPMock test reading TOEFL ITP
Mock test reading TOEFL ITP
 
Mock Test Listening TOEFL ITP
Mock Test Listening TOEFL ITPMock Test Listening TOEFL ITP
Mock Test Listening TOEFL ITP
 
General view of the TOEFL ITP
General view of the TOEFL ITPGeneral view of the TOEFL ITP
General view of the TOEFL ITP
 
HERANÇA - Programação Orientada a Objetos JAVA
HERANÇA - Programação Orientada a Objetos JAVAHERANÇA - Programação Orientada a Objetos JAVA
HERANÇA - Programação Orientada a Objetos JAVA
 
Banco de Dados - Junções Externas e internas
Banco de Dados - Junções Externas e internasBanco de Dados - Junções Externas e internas
Banco de Dados - Junções Externas e internas
 
Aula sobre Programação Orientada a Objetos em Java
Aula sobre Programação Orientada a Objetos em JavaAula sobre Programação Orientada a Objetos em Java
Aula sobre Programação Orientada a Objetos em Java
 
Aula Programação Orientada a Objetos em Java
Aula Programação Orientada a Objetos em JavaAula Programação Orientada a Objetos em Java
Aula Programação Orientada a Objetos em Java
 
Estrutura de Dados - PILHAS
Estrutura de Dados - PILHASEstrutura de Dados - PILHAS
Estrutura de Dados - PILHAS
 
Tutorial instalacão java
Tutorial instalacão javaTutorial instalacão java
Tutorial instalacão java
 
Lista1 3 java
Lista1 3 javaLista1 3 java
Lista1 3 java
 
Lista 2 2 java
Lista 2 2 javaLista 2 2 java
Lista 2 2 java
 
Lista 1 5 java
Lista 1 5 javaLista 1 5 java
Lista 1 5 java
 
Lista 1 4 java
Lista 1 4 javaLista 1 4 java
Lista 1 4 java
 
Lista 1 3 java
Lista 1 3 javaLista 1 3 java
Lista 1 3 java
 
Lista 1 2 java
Lista 1 2 javaLista 1 2 java
Lista 1 2 java
 
Códigos poo java
Códigos poo javaCódigos poo java
Códigos poo java
 
Aula 2 2
Aula 2 2 Aula 2 2
Aula 2 2
 
Aula 2 1
Aula 2 1Aula 2 1
Aula 2 1
 

Programação Orientada a Objetos

  • 1. MINISTÉRIO DA EDUCAÇÃO SECRETARIA DE EDUCAÇÃO PROFISSIONAL E TECNOLÓGICA INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO TRIÂNGULO MINEIRO CAMPUS UBERLÂNDIA CENTRO TECNOLOGIA EM SISTEMAS PARA INTERNET Turma: 3º PERÍODO Unidade Curricular: PROGRAMAÇÃO ORIENTADA A OBJETOS Professor: WILL ROGER PEREIRA LISTA 2-1 Obs: Para todos os exercícios, crie pelo menos 2 (dois) objetos, inicialize os atributos utilizando os construtores (exceto quando especificado no diagrama), e execute todos os métodos públicos para demonstrar suas funcionalidades. Obs2: As especificações e/ou restrições para os valores dos atributos sempre se encontrarão neles!!! Caso este valor esteja fora das especificações dentro de um método, sempre mostre uma mensagem de erro. No caso dos construtores, caso aconteça algum problema com os atributos, atribua valores padrões. Obs3: O levantamento de restrições também é de sua responsabilidade. Portanto, sempre que encontrar alguma irregularidade na execução de um método, informe este erro. Obs4: LEIA, NA ÍNTEGRA, A DESCRIÇÃO DE TODOS OS ATRIBUTOS E MÉTODOS. 1ª Questão Classe Cachorro: - nome : String  Nome do Cachorro. Não pode ser uma String vazia. - idade : int  Idade do Cachorro. Deve ser um valor Natural. - numcachorros : int = 0  Total de Cachorros criado. A cada Cachorro criado, incremente este atributo de classe. - numfilhotes : int = 0  Quantidade de filhotes que um Cachorro gerou. - totalfilhotes : int = 0  Total de filhotes gerados por todos os Cachorros. + Cachorro(nome : String, idade : int)  Construtor. + reproduz() : void  O Cachorro gera um filhote. Mostre na tela que isto ocorreu, identificando o Cachorro no processo. Incremente as quantidades de filhotes gerados. + reproduz(filhotes : int) : void  O Cachorro gera uma quantidade de filhotes presente no argumento. Utilize o método reproduz anterior no processo. + toString() : String  Retorna as informações do Cachorro, para ser mostrado na tela. Não retorne as informações da classe. + infoCanil() : void  Mostra na tela as informações da classe. _________________________________________________________________________________________________
  • 2. 2ª Questão Classe ContaPoupanca: - titular : String  Nome do titular da ContaPoupanca. Não pode ser uma String vazia. - saldo : double = 0.0  Saldo da ContaPoupanca. Não pode ser um número negativo. - numcontas : int = 0  Total de ContasPoupanca criadas no banco. A cada conta criada, incremente este atributo de classe. - totaldinheiro : double = 0.0  Total de saldo presente no banco. Quando entrar dinheiro ou sair dinheiro do banco, modifique este atributo de classe. + ContaPoupanca(titular : String)  Construtor. + toString() : String  Retorna as informações da ContaPoupanca. Não mostre informações referentes a todas as ContasPoupanca. + infoBanco() : void  Mostra na tela as informações referentes ao conjunto de ContasPoupanca, ou seja, o banco: Número de contas criadas e total de saldo presente no banco. + saca(valor : double) : void  Saca determinado valor da ContaPoupanca. O argumento não pode ser negativo. + deposita(valor : double) : void  Deposita determinado valor na ContaPoupanca. O argumento não pode ser negativo. _________________________________________________________________________________________________
  • 3. 3ª Questão Classe Funcionario: - nome : String  Nome do Funcionario. Não pode ser uma String vazia. - salario : double  Importância recebida como parte da remuneração do Funcionario. Não pode ser menor que o salário mínimo(faça uma pesquisa para saber o valor vigente). - bonificacao : double  Porcentagem utilizada para compor a remuneração do Funcionario. Não pode ser um valor negativo. - valerefeicao : double = 393.0  Vale-refeição recebido por todos os Funcionarios para alimentação. + Funcionario(nome : String, salário : double, bonificação : double)  Construtor. + getValeRefeicao() : double  Retorna o valor do vale-refeição dos funcionários. + setValeRefeicao(vale : double) : void  Modifica o valor do vale-refeição dos funcionários, baseado no argumento. O vale-refeição nunca poderá diminuir. + toString() : String  Retorna as informações do Funcionario, acrescidos de seu ganho mensal e ganho anual, além do vale-refeição de todos os funcionários. + setBonificacao(porcentagem : double) : void  Modifica a bonificacao baseado no argumento. + setSalario(salario : double) : void  Modifica o salario do Funcionario baseado no argumento. O salário sempre deverá aumentar quando modificado. + calcGanhoMensal() : double  Calcula o ganho mensal do Funcionario, baseado no salário e na bonificação aplicada sobre o salário. Também deve ser levado em consideração o vale-refeição. + calcGanhoAnual() : double  Calcula o ganho anual, baseando-se no ganho mensal do ano inteiro, considerando a gratificação natalina. _________________________________________________________________________________________________
  • 4. 4ª Questão Classe ContaCorrente: - titular : String  Nome do titular da ContaCorrente. Não pode ser uma String vazia. - saldo : double = 0.0  Saldo da ContaCorrente. Deve ser sempre maior que o negativo de limite. - histórico : String = “”  String que armazenará o histórico de operações da ContaCorrente. - limite : double  Limite da ContaCorrente. Não pode ser um valor negativo. Nunca poderá ser menor que o negativo de saldo. - historicobanco : String = “”  String que armazenará o histórico de operações de todas as ContasCorrente. - tarifa : double = 1.50  Tarifa cobrada nas operações de saque e geração de extrato. - numcontas : int = 0  Total de ContasCorrente criadas no banco. A cada conta criada, incremente este atributo de classe. - saldototal : double = 0.0  Total de saldo presente no banco. Quando entrar dinheiro ou sair dinheiro do banco, modifique este atributo de classe. + ContaCorrente (titular : String, limite : double)  Construtor. + toString() : String  Retorna as informações da ContaCorrente, exceto o histórico. - registraOperacao(op : String) : void  Registra determinada operação(op) realizada no histórico, dependendo da operação realizada. - registraOperacaoBanco(op : String) : void  Registra determinada operação(op) realizada no histórico, dependendo da operação realizada. Esta operação será registrada no histórico do banco e deverá sempre acompanhar o nome do titular. + setLimite(limite : double) : void  Modifica o limite de acordo com o argumento. + setTarifa(valor : double) : void  Modifica a tarifa do banco de acordo com o argumento. - cobraTarifa() : boolean  Cobra tarifa por operação, dependendo se há saldo disponível na ContaCorrente. Retorna true se a tarifa for cobrada com sucesso, e false caso contrário. + saca(valor : double) : void  Retira determinado valor da ContaCorrente. O argumento não pode ser negativo. Operação tarifada. Necessita de registro no histórico e no histórico do banco em caso de sucesso. Além de considerar o valor do saque, deve-se considerar se a tarifa também pode ser cobrada sem que o saldo fique inválido. + deposita(valor : double) : void  Deposita determinado valor na ContaCorrente. O argumento não pode ser negativo. Necessita de registro no histórico e no histórico do banco em caso de sucesso. + geraExtrato() : void  Mostra na tela, o histórico da conta, somente se a tarifa puder ser cobrada com sucesso. Operação tarifada. Necessita de registro no histórico e no histórico do banco. + geraExtratoBanco() : void  Mostra na tela, o histórico do banco. _________________________________________________________________________________________________