6
respostas

Como criar uma nova classe por método em outra

Criei a Classe Conta e Cliente, com Cliente referenciada em Conta. Contudo, gostaria de criar um Cliente novo dentro da classe Conta por meio de um método, para que não necessite no método main ter que criá-lo de maneira usual ( Cliente cliente = new Cliente(); ).

6 respostas

Oi Paloma, tudo bem ?

Eu não entendi muito bem o que você quer fazer :(

É responsabilidade da conta criar um cliente ?

Isso! Ao invés de apenas ter o setter, pois o mesmo só atribui um classe que ja tenha sido criada anteriormente. Gostaria de um método que além de atribuir (setter) uma variável do tipo cliente ainda criaria tal variável automaticamente.

Poder fazer isso, acredito que você até possa, tipo colocar no construtor, que você sempre garante que assim que tiver uma Conta você vai ter um cliente lá.

Você diz na definição dos atributos eu definir que, por exemplo, a variável Cliente titular = new Cliente(); Mas se caso eu não quisesse isso pois um cliente pode ter mais de uma conta, acredito que um método de criação seria mais cabível, mas não estou acertando a sintaxe para isso.

Estava pensando nisso :

class Conta{

    Cliente titular;

    public Conta(Cliente titular){
        this.titular = titular;
    }

}

"Mas se caso eu não quisesse isso pois um cliente pode ter mais de uma conta". Paloma nesse caso você pode trabalhar com as coleções. Por exemplo:

public class Cliente {    
    private List<Conta>contas = new ArrayList<>();

    public void adiciona(Conta conta) {
        this.contas.add(conta);
    }
}


---- 

no main

Conta c1 = new Conta();
c1.deposita(3000);

Conta c2 = new Conta();
c2.deposita(2000);

Cliente cliente = new Cliente();
cliente.adiciona(c1);
cliente.adiciona(c2);