Olá Rafael, tudo bem?
Em relação à outra forma, nenhum. A verdade é que ambas as formas estão desrespeitando as regras de negócio de um banco. Mas para entrarmos nessa discussão, precisamos, antes, entender o que é um construtor, assunto que veremos na última aula desse curso.
Mas basicamente, o construtor é uma operação especial que é executada no momento em que criamos um novo objeto. E ele permite que esse objeto receba dados no momento da instanciação! Ou seja - voltando às regras de negócio que eu comentei, suponha que em nosso banco não podemos ter uma Conta sem agencia
e numero
. Então através do construtor podemos obrigar o objeto do tipo Conta a receber valores que serão atribuídos a esses dois atributos no momento em que ele é instanciado.
O "problema" é que essas alterações fazem com que a forma como instanciamos um novo objeto também mude. Já que agora passaremos valores como parâmetro do construtor entre os parênteses de new Conta()
. Ficando dessa forma, por exemplo:
Conta conta = new Conta(1111, 2222);
Veja que se fizéssemos o mesmo com Cliente e mudássemos a forma como ele é instanciado, isso quebraria esse trecho do código:
public class Conta {
double saldo;
int agencia;
int numero;
Cliente titular = new Cliente();
Endereco localidade = new Endereco();
Pois agora o Cliente também poderia ter a necessidade de receber valores como parâmetro para poder se instanciado.
Não sei se consegui ser claro, mas o ideal é que você assista pelo menos a aula de construtores para que isso faça mais sentido. Caso não tenha ficado claro até lá, volta aqui no fórum que nós faremos o possível para ajudar! :D
Bons estudos!!