Exercício de Herança em Java: Conta Bancária, Corrente e Poupança
Exercício - Banco
Classe abstrata ContaBancaria
package ExercicioHeranca;
import java.util.Scanner;
public abstract class ContaBancaria {
protected int senha;
protected int numero;
protected double saldo;
public ContaBancaria(int senha) {
this.senha = senha;
}
public abstract void saca(double valor);
public abstract void deposita(double valor);
public abstract double tiraExtrato();
public void alteraSenha(int senha_nova) {
Scanner in = new Scanner(System.in);
System.out.println("Entre a senha atual: ");
int senha_digitada = in.nextInt();
if (senha_digitada == this.senha) {
this.senha = senha_nova;
System.out.println("Senha trocada");
} else {
System.out.println("Senha errada");
}
}
public int getSenha() {
return senha;
}
}
Classe ContaCorrente
package ExercicioHeranca;
public class ContaCorrente extends ContaBancaria {
private int qtd_transacao;
public ContaCorrente(int senha) {
super(senha);
}
public void saca(double valor) {
this.saldo = this.saldo - valor;
qtd_transacao++;
}
public void deposita(double valor) {
this.saldo = this.saldo + valor;
qtd_transacao++;
}
public double tiraExtrato() {
qtd_transacao++;
return this.saldo;
}
public int getQtd_transacao() {
return qtd_transacao;
}
public void setQtd_transacao(int qtd_transacao) {
this.qtd_transacao = qtd_transacao;
}
}
Classe ContaPoupanca
package ExercicioHeranca;
public class ContaPoupanca extends ContaCorrente {
private double tx_rend;
public ContaPoupanca(int senha) {
super(senha);
}
public void saca(double valor) {
this.saldo = this.saldo - valor;
}
public void deposita(double valor) {
this.saldo = this.saldo + valor;
}
public double getTx_rend() {
return tx_rend;
}
public void setTx_rend(double tx_rend) {
this.tx_rend = tx_rend;
}
public double tiraExtrato() {
return this.saldo;
}
}
Classe TestaContas
package ExercicioHeranca;
import java.util.Scanner;
public class TestaContas {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
System.out.println("Entre número de contas a serem criadas: ");
int num_contas = in.nextInt();
int i = 0;
ContaBancaria vetorContas[] = new ContaBancaria[num_contas];
while (i < num_contas) {
System.out.println("Digite 1 para criar Corrente ou 2 para Poupança: ");
int tipo_conta = in.nextInt();
if (tipo_conta == 1) {
System.out.println("Digite a senha da conta corrente: ");
int senha = in.nextInt();
ContaCorrente cc = new ContaCorrente(senha);
vetorContas[i] = cc;
} else if (tipo_conta == 2) {
System.out.println("Digite a senha da conta poupança: ");
int senha = in.nextInt();
ContaPoupanca cp = new ContaPoupanca(senha);
vetorContas[i] = cp;
} else {
System.out.println("Não entendi");
}
i++;
}
for (int j = 0; j < num_contas; j++) {
System.out.print(vetorContas[j].toString() + " ");
System.out.println(vetorContas[j].getSenha());
}
vetorContas[0].deposita(100);
vetorContas[0].saca(20);
System.out.println(vetorContas[0].tiraExtrato());
}
}