Olá a todos. Estou no 5° periodo de Sistemas de Informaçao, e me foi passado o seguinte exercicio que deve ser feito usando Polimorfismo e Herança:
Neste trabalho deve-se implementar um pequeno sistema no qual iremos gerenciar diversos tipos de contas bancárias. São elas: Conta Corrente, Conta Poupança e Conta investimento. Cada conta, apesar de ser diferente apresenta características em comum como: saldo, proprietário e tipo. Além disso, devem possuir os métodos sacar, que debita o valor sacado do saldo; depositar, que acrescenta o valor depositado ao saldo; e o método atualizar que atualiza o saldo a partir de uma taxa de juros fixa, sendo 0% para a conta corrente, 0,5% para a poupança e 1% para a conta investimento. O atributo proprietário deve conter os atributos nome e cpf, sendo aconselhável que seja criado uma nova classe para representá-lo. Deve-se criar uma classe Main com os métodos responsáveis por demonstrar o funcionamento do sistema. Abaixo segue uma sugestão para a classe Main:
[code]public class Main {
/**
@param args the command line arguments
*/
public static void main(String[] args) {
Cliente filipe = new Cliente(“Filipe”, “05070194666”);
System.out.println(“Vou testar a conta corrente”);
Conta corrente = new ContaCorrente(filipe);
testaConta(corrente);
System.out.println(“Vou testar a conta poupanca”);
Conta poupanca = new Poupanca(filipe);
testaConta(poupanca);
System.out.println(“Vou testar a conta investimento”);
Conta investimento = new ContaInvestimento(filipe);
testaConta(investimento);
}
public static void testaConta(Conta conta){
//Deve ser implementado
}
}[/code]
Como saída espera-se o seguinte:
Vou testar a conta corrente
Proprietario: Filipe CPF:
05070194666
Tipo: Conta Corrente
Saldo: 0.0
Vou depositar 100,00...
Proprietario: Filipe CPF:
05070194666
Tipo: Conta Corrente
Saldo: 100.0
Vou atualizar...
Proprietario: Filipe CPF:
05070194666
Tipo: Conta Corrente
Saldo: 100.0
Vou testar a conta poupanca
Proprietario: Filipe CPF:
05070194666
Tipo: Poupanca
Saldo: 0.0
Vou depositar 100,00...
Proprietario: Filipe CPF:
05070194666
Tipo: Poupanca
Saldo: 100.0
Vou atualizar...
Proprietario: Filipe CPF:
05070194666
Tipo: Poupanca
Saldo: 100.5
Vou testar a conta investimento
Proprietario: Filipe CPF:
05070194666
Tipo: Investimento
Saldo: 0.0
Vou depositar 100,00...
Proprietario: Filipe CPF:
05070194666
Tipo: Investimento
Saldo: 100.0
Vou atualizar...
Proprietario: Filipe CPF:
05070194666
Tipo: Investimento
Saldo: 101.0
O professor tinha nos passado varios exemplos, e eu os copiei para o pendrive, mas quando cheguei em casa, o fdp estava queimado, e eu perdi todos os codigo de exemplos sobre polimorfismo que ele passou, e tenho que entregar o trabalho na segunda. Gostaria que alguem resolvesse pra mim só a conta corrente para eu saber como é base para a solução. Obrigado a todos.
Não podia colocar a cor da fonte com menos contraste e mais legível?
\o/
Acho que difícil encontrar alguém que faça pra você…(pelo menos de graça)…mas pagando bem, que mal tem…haha…com um incentivo financeiro com certeza aparece um disposto.
[code]public class Conta {
//atributos privados
getter e setter
metodos
class ContaCorrente extends Conta {
/*
métodos sacar
depositar
e atualizar
*/
…
class ContaPoupanca extends Conta {
//metodos depositar e atualizar
obs: Nessas classe conta corrente e c poupança vc tem que usar polimorfismo que é usar o mesmo metodo de Conta só que de forma diferente (Ah…num sei eplicar direito, to tentando)
class Cliente{
[/code]
e a classe principal
Bom…espero que eu tenha te ajudado mais do que te confundido…
package contabancaria;
public class Conta extends Cliente{
public String tipo;
protected double saldo;
protected double juros;
private Cliente cliente;
public Conta(){
cliente = new Cliente();
}
public void setJuros(double juros) {
this.juros = juros;
}
public void setSaldo(double saldo) {
this.saldo = saldo;
}
public void setTipo(String tipo) {
this.tipo = tipo;
}
public double getJuros() {
return juros;
}
public double getSaldo() {
return saldo;
}
public String getTipo() {
return tipo;
}
public void deposita(double valor) {
this.setSaldo(this.getSaldo() + valor);
System.out.println("Vou depositar: "+ valor + "\n"+ imprime()+"\n");
}
public boolean saque(double valor) {
if (this.getSaldo() >= valor) {
System.out.println("Vou sacar" + valor+"\n");
this.setSaldo(this.getSaldo() - valor);
System.out.println("Seu saldo restante é: "+ this.saldo);
return true;
} else {
return false;
}
}
public void atualiza (){
this. saldo = (this.saldo * juros)+(this.saldo);
System.out.println("Vou atualizar" +"\n" +imprime()+"\n");
}
public void testaConta(Conta conta){
System.out.println(imprime());
}
public String imprime(){
return "Proprietário: " +nome +" - " + cpf + " "+"\n" + "Tipo: " + tipo + "\n"+ "Saldo: " + saldo + "\n";
}
}
//*public static void testaConta(Conta conta){
// System.out.println("Proprietário:" );
// }
acho q fiz algo errado ae. pq qdo chamo a classe principal:
Cliente cliente = new Cliente("CArlos", "55.62.5.66");
System.out.println("Vou testar a conta corrente...");
Conta corrente = new ContaCorrente(cliente);
a conta corrente exibe é o meu nome e meu cpf ao invés da variavel cliente q atribuí os valores. o que será q fiz de errado?
Não, criei 6 classes contando com a main: CONTA, CONTA POUPANÇA, CONTA CORRENTE, CONTA INVESTIMENTO, CLIENTE. e coloquei as CC, CP, e CI pra herdar de CONTA.
public static void main(String[] args) {
Cliente lucas = new Cliente("Lucas", "06597230698");
Cliente cliente = new Cliente("CArlos", "55.62.5.66");
System.out.println("Vou testar a conta corrente...");
Conta corrente = new ContaCorrente(cliente);
corrente.testaConta(corrente);
corrente.deposita(150);
corrente.atualiza();
System.out.println("Vou testar a Conta Poupança...");
Conta poupanca = new Poupanca(lucas);
poupanca.testaConta(poupanca);
poupanca.deposita(150);
poupanca.atualiza();
System.out.println("Vou testar a Conta Investimento...");
Conta investimento = new ContaInvestimento(lucas);
investimento.testaConta(investimento);
investimento.deposita(160);
investimento.deposita(300);
investimento.atualiza();
}
public static void testaConta( Conta conta){ //este é um metedo q faalta implantar, o certo pra chamar as contas, mas nao tenho nem ideia de como implantálo.
[code]public class TestaConta {
public static void main(String args []){
ContaCorrente cc = new ContaCorrente();
ContaPoupança cp = new ContaPoupança();
ContaInvestimento ci = new ContaInvestimento();
cc.setTitular(“Carlos”);
cc.saldo = 1000;
cc.saca(300);
cc.atualiza();//faz a mesma coisa para poupança e investimento
[b]Sabe o que não to entendendo? é que ele quer que em um único método, esse “testaConta(corrente);” imprima isso tudo abaixo, isso para cada conta utilizando o mesmo método:
Proprietario: Filipe CPF:
05070194666
Tipo: Conta Corrente
Saldo: 0.0
Vou depositar 100,00…
Proprietario: Filipe CPF:
05070194666
Tipo: Conta Corrente
Saldo: 100.0
Vou atualizar…
Proprietario: Filipe CPF:
05070194666
Tipo: Conta Corrente
Saldo: 100.0[/b]
vou tentar implementar ela aqui, pra ver o q vai dar. rs. Só estranhei porque ele usou o static pra declarar e já dentro da main. olha:
[code]public class Main {
/**
@param args the command line arguments
*/
public static void main(String[] args) {
Cliente filipe = new Cliente(“Filipe”, “05070194666”);
System.out.println(“Vou testar a conta corrente”);
Conta corrente = new ContaCorrente(filipe);
testaConta(corrente);
System.out.println(“Vou testar a conta poupanca”);
Conta poupanca = new Poupanca(filipe);
testaConta(poupanca);
System.out.println(“Vou testar a conta investimento”);
Conta investimento = new ContaInvestimento(filipe);
testaConta(investimento);
}
public static void testaConta(Conta conta){
//Deve ser implementado
}
}[/code]
Vc viu o código que te mandei?
Tenta fazer daquela forma sem esse método “Testa Conta” e vê se funciona, pq eu tbm não tô entendendo pra que esse método aiii…