5
respostas

Meu código não ta funcionando, não compila, onde ta o error?

class Conta { Pessoa nome; int numero; double saldo; int agencia;

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

void saca(double saque) { if(this.saldo >= saque) { this.saldo -= saque; } }

void transfere(double valor, Conta destino) { this.saldo -= valor; destino.saldo += valor;

} }

class Pessoa { String nome; String cpf; String dataDeNascimento;

}

class Programa { public static void main(String[] args) { Conta mauricio = new Conta(); mauricio.numero =123; mauricio.saldo = 800.0; mauricio.agencia = 842;

mauricio.titular = new Pessoa(); mauricio.titular.nome = "Mauricio Aniche"; mauricio.titular.cpf = "00000000090"; mauricio.titular.dataDeNascimento = "01/01/1990";

Conta guilherme = new Conta(); guilherme.numero = 124; guilherme.saldo = 1200.0; guilherme.agencia = 843;

//guilherme.titular = new Pessoa(); //guilherme.titular.nome = "Guilherme Soares"; //guilherme.titular.cpf = "00000000190"; //guilherme.titulardataDeNascimento = "02/01/1990";

mauricio.deposita(100.0); guilherme.deposita(100.0);

mauricio.saca(50.0); guilherme.saca(50.0);

guilherme.transfere(100.0, mauricio); mauricio.transfere(100.0, guilherme);

System.out.println(mauricio); System.out.println(mauricio.saldo); System.out.println(guilherme); System.out.println(guilherme.saldo); } }

5 respostas

Faltou você criar o objeto "Pessoa titular;" dentro da classe Conta.

Pessoa nome;
int numero;
double saldo;
int agencia;
Pessoa titular;

class Conta { Pessoa titular; Pessoa nome; int numero; double saldo; int agencia;

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

void saca(double saque) { if(this.saldo >= saque) { this.saldo -= saque; } }

void transfere(double valor, Conta destino) { this.saldo -= valor; destino.saldo += valor;

} }

class Pessoa { String nome; String cpf; String dataDeNascimento;

}

class Programa { public static void main(String[] args) { Conta mauricio = new Conta(); mauricio.numero =123; mauricio.saldo = 800.0; mauricio.agencia = 842;

mauricio.titular = new Pessoa(); mauricio.titular.nome = "Mauricio Aniche"; mauricio.titular.cpf = "00000000090"; mauricio.titular.dataDeNascimento = "01/01/1990";

Conta guilherme = new Conta(); guilherme.numero = 124; guilherme.saldo = 1200.0; guilherme.agencia = 843;

//guilherme.titular = new Pessoa(); //guilherme.titular.nome = "Guilherme Soares"; //guilherme.titular.cpf = "00000000190"; //guilherme.titulardataDeNascimento = "02/01/1990";

mauricio.deposita(100.0); guilherme.deposita(100.0);

mauricio.saca(50.0); guilherme.saca(50.0);

guilherme.transfere(100.0, mauricio); mauricio.transfere(100.0, guilherme);

System.out.println(mauricio.nome); System.out.println(mauricio.saldo); System.out.println(guilherme.nome); System.out.println(guilherme.saldo); } }

insira seu código aqui

agora da esse resultado.

null 850.0 null 1250.0

Marcílio, Uma dica é sempre dar nome aos seus objetos ao o que eles realmente se referem.

O objeto abaixo poderia se chamar pessoa e não nome pois é uma instancia de Pessoa e dentro de Pessoa existem um objeto String chamado nome.

Antes:

Pessoa nome;

Depois:

Pessoa pessoa;

Agora o porque eu disse isso Marcílio? Com essa nomenclatura incorreta você mesmo se confundiu ao tentar printar os dois valores abaixo. Da maneira que escreveu o código você está printando o objeto e não o campo que realmente deseja.

System.out.println(mauricio.nome);    
System.out.println(guilherme.nome);

Eu também a principio não estava entendendo o seu código, agora que parei para analisar realmente, entendi o que você estava realmente querendo. Segue correção abaixo, não há necessidade de criar dois objetos Pessoa como eu disse no meu primeiro comentário.

class Conta {
    Pessoa titular;
    int numero;
    double saldo;
    int agencia;

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

    void saca(double saque) {
        if (this.saldo >= saque) {
            this.saldo -= saque;
        }
    }

    void transfere(double valor, Conta destino) {
        this.saldo -= valor;
        destino.saldo += valor;
    }
}

class Pessoa {
    String nome;
    String cpf;
    String dataDeNascimento;

}

class Programa {
    public static void main(String[] args) {

        Conta mauricio = new Conta();
        mauricio.numero = 123;
        mauricio.saldo = 800.0;
        mauricio.agencia = 842;

        mauricio.titular = new Pessoa();
        mauricio.titular.nome = "Mauricio Aniche";
        mauricio.titular.cpf = "00000000090";
        mauricio.titular.dataDeNascimento = "01/01/1990";

        Conta guilherme = new Conta();
        guilherme.numero = 124;
        guilherme.saldo = 1200.0;
        guilherme.agencia = 843;

        guilherme.titular = new Pessoa(); 
        guilherme.titular.nome = "Guilherme Soares";
        guilherme.titular.cpf = "00000000190";
        guilherme.titular.dataDeNascimento = "02/01/1990";

        mauricio.deposita(100.0);
        guilherme.deposita(100.0);

        mauricio.saca(50.0);
        guilherme.saca(50.0);

        guilherme.transfere(100.0, mauricio);
        mauricio.transfere(100.0, guilherme);

        System.out.println(mauricio.titular.nome);
        System.out.println(mauricio.saldo);
        System.out.println(guilherme.titular.nome);
        System.out.println(guilherme.saldo);
    }
}

Boa Caio!!!

muito obg.

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