Фрагмент от лекция с ментор като част от курса на Codegym University. Запишете се за пълния курс.


„Сега е крайно време да ви разкажа за конструкторите. Това е наистина проста концепция. Програмистите са измислor кратък начин за създаване и инициализиране на обекти.

Без конструктор С конструктор
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();

„Току-що приключих с изучаването на метода за инициализация…“

„Погледнете по-внимателно. С конструкторите codeът е по-удобен и компактен.“

„Така е. Ето един въпрос. Знам How да напиша метод за инициализация вътре в клас, но How да напиша конструктор?“

„Първо вижте този пример:“

Без конструктор С конструктор
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;
  }}

"Лесно е да декларирате конструктор в клас. Конструкторът е подобен на метода за инициализация , само с две разлики:

1. Името на конструктора е същото като името на класа (instead of инициализиране).

2. Конструкторът няма тип (не е посочен тип)."

„Добре, значи е като инициализиране , но с няколко разлики. Мисля, че го разбирам.“