Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Ajuda!! Está gerando erro

Não estou conseguindo receber o objeto

import java.util.*;

public class Banco{

    protected List<Conta> contas = new ArrayList<>();

    public void addConta(Conta c){
        contas.add(c);    
    }

    public Conta pega(int x){

        for(int i = 0; i < contas.size(); i++){
            if(contas.contains(x) == true){
                return contas;    
            }        

        return null;    
        }
    }

    public int pegaQuantidadeDeContas(){
        return contas.size();
    }
}
public class Conta {

    protected double saldo;
    protected  String nome;
    protected  int agencia;

    public void saca(double valor){
        this.saldo = this.saldo - valor;
    }

    public void atualiza(double taxa){
        this.saldo = this.saldo + this.saldo * taxa;
    }

    public void deposita(double valor){
        this.saldo = this.saldo + valor;
    }

    public void setAgencia(int ag){
        this.agencia = ag;
    }

    public int getAgencia(){
        return this.agencia;
    }
}
public class ContaPoupanca extends Conta implements Comparable<ContaPoupanca>{

    @Override
    public void atualiza(double taxa) {
        this.saldo += this.saldo * taxa * 3;
    }

    @Override
    public void deposita(double valor) {
        this.saldo += valor - 0.10;
    }

    @Override
    public int compareTo(ContaPoupanca outra){
        if(this.agencia < outra.agencia){
            return -1;  
        }
            if(this.agencia > outra.agencia){
                return 1;
            }
        return 0;
    }

    @Override
    public String toString() {
        return "Número da conta: " + getAgencia();
    }    

}
//import java.util.*;

public class TestaConta{

    public static void main(String[] args){

    Conta c1 = new ContaPoupanca();
    Conta c2 = new ContaPoupanca();

    c1.setAgencia(500);
    c2.setAgencia(502);

    Banco b = new Banco();    

    b.addConta(c1);
    b.addConta(c2);

    //System.out.println(b.pega(500));

    System.out.println(b.pegaQuantidadeDeContas());

    }
}
ERRO: Banco.java:15: error: incompatible types: List<Conta> cannot be converted to Conta
                return contas;    
                       ^
1 error
2 respostas

Oi Tiago,

Dentro do método public Conta pega(int x) da classe Banco você disse que seu tipo de retorno é uma Conta mas na hora de retornar você está retornando o array de contas. Você precisa retornar uma única conta neste método.

Abraço!

solução!

Entendi. Agora deu certo!! Compartilhando!!!

import java.util.*;

public class Banco{

    protected List<Conta> contas = new ArrayList<>();

    public void addConta(Conta c){
        contas.add(c);    
    }

    public Conta pega(int x){

    Conta c = null;

        for(int i = 0; i < contas.size(); i++){
            if(contas.get(i).getAgencia() == x){
                c = contas.get(i);        
            }

        }
        return c;        
    }


    public int pegaQuantidadeDeContas(){
        return contas.size();
    }
}
public class Conta {

    protected double saldo;
    protected  String nome;
    protected  int agencia;

    public void saca(double valor){
        this.saldo = this.saldo - valor;
    }

    public void atualiza(double taxa){
        this.saldo = this.saldo + this.saldo * taxa;
    }

    public void deposita(double valor){
        this.saldo = this.saldo + valor;
    }

    public void setAgencia(int ag){
        this.agencia = ag;
    }

    public int getAgencia(){
        return this.agencia;
    }

    public void setNome(String n){
        this.nome = n;
    }

    public String getNome(){
        return this.nome;
    }
}
public class ContaPoupanca extends Conta implements Comparable<ContaPoupanca>{

    @Override
    public void atualiza(double taxa) {
        this.saldo += this.saldo * taxa * 3;
    }

    @Override
    public void deposita(double valor) {
        this.saldo += valor - 0.10;
    }

    @Override
    public int compareTo(ContaPoupanca outra){
        if(this.agencia < outra.agencia){
            return -1;  
        }
            if(this.agencia > outra.agencia){
                return 1;
            }
        return 0;
    }

    @Override
    public String toString() {
        return "Nome: " + getNome() + "\n" +
               "Conta: " + getAgencia();
    }   

}
public class TestaConta{

    public static void main(String[] args){

    Conta c1 = new ContaPoupanca();
    Conta c2 = new ContaPoupanca();

    c1.setAgencia(500);
    c2.setAgencia(502);
    c1.setNome("Tiago");
    c2.setNome("Fernandes");

    Banco b = new Banco();    

    b.addConta(c1);
    b.addConta(c2);

    System.out.println(b.pega(500));

    System.out.println(b.pegaQuantidadeDeContas());

    }
}
Tiagos-MacBook-Pro:Exer14 tiago$ java TestaConta
Nome: Tiago
Conta: 500
2

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software