Fazendo um new direto:
contaDaMarcela.setTitular(new Cliente());Fazendo um new direto:
contaDaMarcela.setTitular(new Cliente());É totalmente válido esse código, caso vc deseje setar outros atributos de Cliente pode ser realizador extraindo a varíavel.
Cliente c = new Client();
c.setAlgumaCoisa("valor");
contaDaMarcela.setTitular(c);ou
contaDaMarcela.getTitular.setAlgumaCoisa("valor");Não existe certo ou errado, mas existe uma importante característica no código que deve ser levada em consideração chamada de legibilidade , que seria o quão fácil é bater o olho no código e entender-lo.
Obrigado Breno, mas o código funciona bem e está assim:
Classe que é a inicializadora:
public class TesteDoido {
    public static void main(String[] args) {
        Conta renato = new Conta();
        //Cliente renato = new Cliente();
        renato.setTitular(new Cliente());
        renato.getTitular().setNome("Paulo");
        renato.setNumero(1234);
        renato.getTitular().setProfissao("Programador");
        renato.mostraConta();
    }
}
Método mostraConta() na classe Conta:
public void mostraConta() {
        getTitular().mostraCliente();
        System.out.println("Numero da conta: " + getNumero());
        System.out.println("Número da agencia: " + getAgencia());
        System.out.println("Saldo atual: " + getSaldo());
    }
Só não seria válido se o cliente já fosse existente e quisesse abrir uma nova conta de outro tipo por exemplo... OU não? Falei besteira?
Tranquilo , são formas diferentes de fazer a mesma coisa.
Bom o "X" da questão é?
Resp: Depende para que, porque e como será aplicado... Realizei uma abstração do tema e cheguei a esta conclusão, ao meu ver satisfatória.
Independente do contexto do negócio,
objeto.setAlgumaCoisa(new OutraCoisa());isso será viável se vc não precisa de nada do objeto criado por com o new OutraCoisa()