Ainda não tem acesso? Estude com a gente! Matricule-se
Ainda não tem acesso? Estude com a gente! Matricule-se

Solucionado (ver solução)

Dúvida sobre o new Cliente()

A minha dúvida é sobre uma exemplo dado na aula, vou colar o código pra ficar mais fácil de entender.

Tenho a classe Conta

public class Conta {

    double saldo;
    int agencia;
    int numero;
    Cliente titular;
}

e a classe TestaContaSemCliente

public class TestaContaSemCliente {
    public static void main(String[] args) {
        Conta contaDaMarcela = new Conta();
        System.out.println(contaDaMarcela.saldo);

        contaDaMarcela.titular = new Cliente();
        System.out.println(contaDaMarcela.titular);

        contaDaMarcela.titular.nome = "Marcela";
        System.out.println(contaDaMarcela.titular.nome);
    }
}

Se nessa minha classe Conta em Cliente eu já colocasse new Cliente(), do jeito mostrado:

Cliente titular = new Cliente();  

eu ainda precisaria colocar assim em TestaContaSemCliente?

contaDaMarcela.titular = new Cliente();

Já que eu já estou criando um novo cliente em Conta. Como ficaria essa parte do código em TestaContaSemCliente.

Desculpe se ficou muito confuso como expliquei minha dúvida.

1 resposta
solução

Olá Anne, há diversas forma de você fazer isso, mas respondendo sua pergunta inicial se você fizesse isso:

public class Conta {
    double saldo;
    int agencia;
    int numero;
    Cliente titular = new Cliente();
}

Não precisaria passar o cliente de novo;

Mas o ideal é utilizar o que chamamos de método construtor, por exemplo:

public class Conta {
    double saldo;
    int agencia;
    int numero;
    Cliente titular = new Cliente();

    public Conta(int agencia, int numero, Cliente titular) {
        this.saldo = 0;
        this.agencia = agencia;
        this.numero = numero;
        this.titular = new Cliente();
    }
}

Dessa forma sempre que alguém for utilizar a classe Conta terá que passar a agência, número e o titular sendo impossível criar uma Conta sem essas informações.

Conta novaConta = new Conta(1, 1020, new Cliente());

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