Et foredragsuddrag med en mentor som en del af Codegym University-kurset. Tilmeld dig hele kurset.


"Nu er det på høje tid, at jeg fortæller dig om konstruktører. Dette er virkelig simpelt koncept. Programmører har opfundet en stenografisk måde at skabe og initialisere objekter på. "

Uden konstruktør Med en konstruktør
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();

"Jeg er lige blevet færdig med at lære om initialiseringsmetoden..."

"Se hårdere ud. Med konstruktører er koden mere praktisk og kompakt."

"Så det er det. Her er et spørgsmål. Jeg ved, hvordan man skriver en initialiseringsmetode inde i en klasse, men hvordan skriver jeg en konstruktør?"

"Kig først på dette eksempel:"

Uden konstruktør Med en konstruktør
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;
  }

…
}

"Det er nemt at erklære en konstruktør inde i en klasse. En konstruktør ligner initialiseringsmetoden med kun to forskelle:

1. Navnet på en konstruktør er det samme som klassenavnet (i stedet for initialisering).

2. En konstruktør har ingen type (ingen type er angivet)."

"OK, så det er ligesom initialisering , men med nogle få forskelle. Jeg tror, ​​jeg forstår det."