Um trecho de palestra com um mentor como parte do curso Codegym University. Inscreva-se no curso completo.


"Agora é hora de falar sobre construtores. Este é um conceito realmente simples. Os programadores inventaram uma maneira abreviada de criar e inicializar objetos. "

Sem um construtor Com um construtor
MyFile file = new MyFile();
file.initialize("c:\data\a.txt");
String text = file.readText();
MyFile file = new MyFile("c:\data\a.txt");
String text = file.readText();
MyFile file = new MyFile();
file.initialize("c:\data\", "a.txt");
String text = file.readText();
MyFile file = new MyFile("c:\data\", "a.txt");
String text = file.readText();
MyFile file = new MyFile();
file.initialize("c:\data\a.txt");

MyFile file2 = new MyFile();
file2.initialize( MyFile file, "a.txt");
String text = file2.readText();
MyFile file = new MyFile("c:\data\a.txt");


MyFile file2 = new MyFile(file, "a.txt");
String text = file2.readText();

"Acabei de aprender sobre o método initialize..."

"Observe melhor. Com construtores, o código é mais conveniente e compacto."

"Então é. Aqui está uma pergunta. Eu sei como escrever um método de inicialização dentro de uma classe, mas como eu escrevo um construtor?"

"Primeiro, veja este exemplo:"

Sem um construtor Com um construtor
class MyFile
{
  private String filename = null;

  public void initialize(String name)
  {
    this.filename = name;
  }

  public void initialize(String folder, String name)
  {
    this.filename = folder + name;
  }

  public void initialize(MyFile file, String name)
  {
    this.filename = file.getFolder() + name;
  }

…
}
class MyFile
{
  private String filename = null;

  public MyFile(String name)
  {
    this.filename = name;
  }

  public MyFile(String folder, String name)
  {
    this.filename = folder + name;
  }

  public MyFile(MyFile file, String name)
  {
    this.filename = file.getFolder() + name;
  }

…
}

"É fácil declarar um construtor dentro de uma classe. Um construtor é semelhante ao método initialize , com apenas duas diferenças:

1. O nome de um construtor é o mesmo que o nome da classe (em vez de inicializar).

2. Um construtor não tem tipo (nenhum tipo é indicado)."

"OK, é como inicializar , mas com algumas diferenças. Acho que entendi."