Előadásrészlet egy mentorral a Codegym University tanfolyam részeként. Jelentkezzen a teljes tanfolyamra.


"Most itt az ideje, hogy beszéljek a konstruktorokról. Ez nagyon egyszerű koncepció. A programozók feltaláltak egy rövidített módszert az objektumok létrehozására és inicializálására. "

Konstruktor nélkül Konstruktorral
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();

"Épp most fejeztem be az inicializálási módszer megismerését..."

"Nézze meg jobban. A konstruktorokkal a kód kényelmesebb és kompaktabb."

"Így van. Íme egy kérdés. Tudom, hogyan kell inicializálási metódust írni egy osztályon belül, de hogyan írjak konstruktort?"

"Először nézd meg ezt a példát:"

Konstruktor nélkül Konstruktorral
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;
  }

…
}

"Könnyű deklarálni egy konstruktort egy osztályon belül. A konstruktor hasonló az inicializálási metódushoz, csak két különbséggel:

1. A konstruktor neve megegyezik az osztály nevével (inicializálás helyett).

2. A konstruktornak nincs típusa (nincs típus feltüntetve)."

"Rendben, ez olyan, mint az inicializálás , de néhány eltéréssel. Azt hiszem, értem."