Boa noite pessoal. Antes de tudo peço perdão pois há inúmeros tópicos sobre o mesmo assunto ( arraylist ) porém já estudei os casos e nehum que encontrei ajudou em minha dúvida principal, outras eu já sanei, e gostarei da boa ajuda dos nossos amigos GUJ.
Estou implementando uma classe abstrata contaBancaria que é pai de contaCorrente e ContaPoupanca. Eu devo armazenar as contas criadas ( o usuário dirá a quantidade desejada ) em um arraylist. O meu problema é que não consigo acessar os elementos dentro do maldito arraylist e creio que seja a forma que estou implementando.
contaBancaria.javapublic abstract class ContaBancaria {
protected int numero;
protected int senha;
protected double saldo;
public ContaBancaria(double pSaldo, int pNumero, int pSenha) {
this.numero = pNumero;
this.saldo = pSaldo;
this.senha = pSenha;
}
abstract void saca(double valor);
abstract void deposita(double valor);
abstract void consultarExtrato();
public int numero(){
return this.numero;
}
public void alteraSenha(int novaSenha){
}
}
public class ContaCorrente extends ContaBancaria {
private int transacoesRealizadas;
public ContaCorrente(double pSaldo, int pNumero, int pSenha) {
super(pSaldo, pNumero, pSenha);
}
@Override
public void saca(double valor) {
this.saldo -= valor;
++this.transacoesRealizadas;
}
@Override
public void deposita(double valor) {
this.saldo += valor;
++this.transacoesRealizadas;
}
@Override
public void consultarExtrato() {
System.out.printf("Saldo: %s \nQuantidade de transações realizadas: %s \n", this.saldo , this.transacoesRealizadas);
}
public int retornarTransacoesRealizadas(){
return this.transacoesRealizadas;
}
public int numero(){
return this.numero;
}
}
public class ContaPoupanca extends ContaBancaria {
private double taxaRendimento;
public ContaPoupanca(double pSaldo, int pNumero, int pSenha) {
super(pSaldo, pNumero, pSenha);
}
@Override
public void saca(double valor) {
this.saldo -= valor;
}
@Override
public void deposita(double valor) {
this.saldo += valor;
}
@Override
public void consultarExtrato() {
System.out.printf("Saldo: %s \n", this.saldo );
}
public double retornartaxaRendimento(){
return this.taxaRendimento;
}
public void definirTaxaRendimento(double pTaxaRendimento){
this.taxaRendimento = pTaxaRendimento;
}
public int numero(){
return this.numero;
}
}
public class Conta {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
ArrayList<Object> contas = new ArrayList<Object>();
System.out.println("########### SYSBANK ###########");
System.out.println("Quantas contas deseja criar?");
int qtContas = sc.nextInt();
for(int i = 1; i <= qtContas; i++){
System.out.println("Qual o tipo de conta deseja criar?");
System.out.println("1 - Conta corrente");
System.out.println("2 - Conta poupança");
int tipoConta = sc.nextInt();
System.out.println("Digite o Numero da Conta");
int numeroConta = sc.nextInt();
System.out.println("Digite o saldo");
double saldoConta = sc.nextDouble();
System.out.println("Digite a senha da Conta");
int senhaConta = sc.nextInt();
if(tipoConta == 1){
ContaCorrente novaContaCorrente = new ContaCorrente(saldoConta, numeroConta, senhaConta);
contas.add(novaContaCorrente);
} else if(tipoConta == 2) {
ContaPoupanca novaContaPupanca = new ContaPoupanca(saldoConta, numeroConta, senhaConta);
contas.add(novaContaPupanca);
} else {
System.out.println("Tipo de conta inválido.");
}
}
for (int i = 0; i < contas.size(); i++) {
System.out.println( contas.get(i).getNumero() );
}
}
}
for (int i = 0; i < contas.size(); i++) {
System.out.println( contas.get(i).getNumero() );
}
Não consigo acessar o getNumero ou qualquer método que eu implemente no objeto dentro do arraylist. Poderiam me ajudar e indicar onde estou errando?
Obrigado.
Abraços.