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

Exception in thread "main" java.lang.NullPointerException (Com objeto instanciado)

Olá estou recebendo um Null pointer de retorno com objeto instanciado.

Segue o código: Testabanco.java public static void main(String[] args) {

    Cliente paulo = new Cliente(); 
    paulo.nome="Paulo Silveira";
    paulo.cpf=" 222.222.222-22";
    paulo.profissao="ator";
    Conta contadoPaulo = new Conta();
    contadoPaulo.deposita(100);
    System.out.println(contadoPaulo.saldo);
    System.out.println(contadoPaulo.titular.nome);

Conta.java

public class Conta { double saldo; int agencia; int numero;

Cliente titular;

Cliente.Java public class Cliente { String nome; String cpf; String profissao; }

Resultado após compilar:

100.0 Exception in thread "main" java.lang.NullPointerException at TestaBanco.main(TestaBanco.java:13)

Se uso apenas System.out.println(contadoPaulo.titular); o resultado é: 100.0 null

2 respostas

Oi Luiz,

Tem o código completo? Não sei dizer onde é a linha13, mas suponho que seja essa:

System.out.println(contadoPaulo.titular.nome);

Você vai precisar instânciar um cliente e atribuir ao titular:

Cliente titular = new Cliente();
solução!

Cara, pelo visto foi semântica. Se entendi bem deveria estar assim:

paulo.titular = (nome da instancia)

Assim permite você editar os atributos da classe Cliente.

paulo.(nome da instancia).nome = (nome)

Abaixo tem meu código com alguns setter e getters e espero que possa ser de ajuda

public class Testagetset {
    public static void main(String[] args) {
        //Primeira conta e seus atributos
        Conta primeiraConta = new Conta(2258);
        Cliente roger = new Cliente();
        primeiraConta.setTitular(roger);
        primeiraConta.getTitular().setNome("Roger");
        System.out.println("Titular da conta: " + primeiraConta.getTitular().getNome());
        primeiraConta.setNumero(11528740);
        System.out.println("Número da conta: " + primeiraConta.getNumero());
        //primeiraConta.setAgencia(2258);
        System.out.println("Numero da agência: " + primeiraConta.getAgencia());
        //primeiraConta.setSaldo(500.50);
        primeiraConta.deposita(500);
        System.out.println("Saldo: " + primeiraConta.getSaldo());
public class Conta {
    private double saldo;
    private int agencia;
    private int numero;
    private Cliente titular;
    private static int total;

    Conta(int numero){
        this.agencia = numero;
        Conta.total++;
    }

    //Método deposito
    public void deposita(double valor) {
        if(valor >= 0) {
            this.saldo += valor;
            System.out.println("Deposito feito com sucesso!");
        } else {
            System.out.println("valor inválido!");
        }

    }

    //Método Saque
    public boolean saca(double valor) {
        if(this.saldo >= valor) {
            this.saldo -= valor;
            System.out.println("Saque feito com sucesso!");
            return true;

        } else {
            System.out.println("Saldo menor que o necessário!");
            return false;
        }
    }

    //Método transferencia
    public boolean transfere(double valor, Conta destino) {
        if(this.saldo >= valor && valor > 0) {
            this.saldo -= valor;
            destino.deposita(valor);
            System.out.println("Transferido com sucesso para a conta de " + destino.titular.getNome());
            return true;
        } else {
            System.out.println("Saldo menor que o necessário!");
            return false;
        }
    }

    //Getters
    public double getSaldo() {
        return this.saldo;
    }

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

    public Cliente getTitular() {
        return titular;
    }
    public static void getTotal() {
        System.out.println("O total de contas atualmente é: "+ Conta.total);
        //return Conta.total;
    }

    //Setters
    /*public void setSaldo(double saldo) {
        this.saldo = saldo;
    }*/
    public void setAgencia(int agencia) {
        this.agencia = agencia;
    }
    public void setNumero(int numero) {
        this.numero = numero;
    }
    public void setTitular(Cliente titular) {
        this.titular = titular;
    }

}


public class Cliente {
    private String nome;
    private String cpf;
    private String profissao;

    //Getters
    public String getProfissao() {
        return profissao;
    }
    public String getCpf() {
        return cpf;
    }

    public String getNome() {
        return nome;
    }


    //Setters

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

}

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