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

erro no setTitular

public class Conta { private double saldo; private int agencia; private int numero; private String titular;

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


public boolean saca(double valor) {
    if(this.saldo >= valor) {
        this.saldo -= valor;
        return true;    
    }else {
        return false;
    }
}


public boolean transfere(double valor, Conta destino) {
    if(this.saldo >= valor) {
        this.saldo -= valor;
        destino.deposita(valor);
        return true;
    }
    return false;    
}

public double getSSaldo() {
    return this.saldo;
}


public int getNumero() {
    return this.numero;    
    }

public void setNumero(int numero) {
    this.numero = numero;

}

public void setTitular(String titular) {
    this.titular = titular;
}

public String getTitular() {
    return this.titular;
}

}

public class Cliente {

private String nome;
private String cpf;
private String profissao;


public String getNome() {
    return nome;
}
public void setNome(String nome) {
    this.nome = nome;
}
public String getCpf() {
    return this.cpf;
}
public void setCpf(String cpf) {
    this.cpf = cpf;
}
public String getProfissao() {
    return this.profissao;
}
public void setProfissao(String profissao) {
    this.profissao = profissao;
}

}

public class TesteGetESet { public static void main(String[] args) { Conta conta = new Conta(); conta.setNumero(1666); System.out.println(conta.getNumero());

    Cliente erico = new Cliente();
    erico.setNome("Erico Moreira de Miranda");
    System.out.println(erico.getNome());



    System.out.println(conta.getTitular());
    conta.setTitular(erico);

}

}

Estou recebendo o seguinte erro quando faço conta.setTitular(erico):

Exception in thread "main" java.lang.Error: Unresolved compilation problem: The method setTitular(String) in the type Conta is not applicable for the arguments (Cliente)

at TesteGetESet.main(TesteGetESet.java:15)
3 respostas
solução!

Olá, Eric. Pelo que vi você está tentando chamar um método da classe Conta passando como argumento uma referência do tipo Cliente. O Java não entende e retorna uma exceção, pois as classes não estão associadas. Você precisa declarar um atributo do tipo Cliente na sua classe Conta.

Só complementando a resposta do colega Breno, Você está passando como argumento um objeto do tipo Cliente, porém o setTitular() recebe como parâmetro uma String, são tipos diferentes. Você precisa alterar o setTitular() para receber um objeto do tipo Cliente e alterar o atributo titular também, para ser do tipo Cliente.

as alterações devem ser feitas na classe Conta. Ela deve ficar assim:

`

Conta {
    private double saldo;
    private int agencia;
    private int numero;
    private Cliente titular; // Tipo Alterado para Cliente

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

    public boolean saca(double valor) {
        if(this.saldo >= valor) {
                this.saldo -= valor;
                return true;    
            }
        return false;
    }

    public boolean transfere(double valor, Conta destino) {
        if(this.saldo >= valor) {
            this.saldo -= valor;
            destino.deposita(valor);
            return true;
        }
        return false; 
    }
    public double getSaldo() { // Alterando nome do método (estava com um 's' a mais)
        return this.saldo;
    }

    public int getNumero() {
        return this.numero;    
    }

    public void setNumero(int numero) {
        this.numero = numero;

    }

    public void setTitular(Cliente titular) { // Alterando o tipo do parametro para Cliente, assim não terá mais erro
        this.titular = titular;
    }

    public Cliente getTitular() { // Alterando o valor do retorno para Cliente, pois agora o atributo titular é do tipo Cliente
        return this.titular;
    }
}

` Espero ter ajudado.

Obrigado Breno e Valter pelas explicações! Abraços