Menu
Coddy logo textTech

Podstawy konstruktorów

Część sekcji Programowanie obiektowe ścieżki Dart w Coddy. Lekcja 8 z 110.

Konstruktor to specjalna metoda, która uruchamia się automatycznie, gdy tworzysz nowy obiekt. Inicjalizuje zmienne instancji obiektu w chwili jego utworzenia.

Oto przykład klasy z konstruktorem:

class Dog {
  String name;
  String breed;

  Dog(String name, String breed) {
    this.name = name;
    this.breed = breed;
  }
}

Konstruktor ma taką samą nazwę jak klasa. Parametry są przekazywane podczas tworzenia obiektu.

Twórz obiekty, przekazując argumenty do konstruktora:

Dog rex = Dog('Rex', 'German Shepherd');
Dog buddy = Dog('Buddy', 'Golden Retriever');

Uzyskaj dostęp do zmiennych ustawionych przez konstruktor:

print(rex.name);
print(rex.breed);
print(buddy.name);
print(buddy.breed);

Wynik:

Rex
German Shepherd
Buddy
Golden Retriever

Dart oferuje również skróconą składnię konstruktora, która wykorzystuje bezpośrednio this.variableName na liście parametrów:

class Dog {
  String name;
  String breed;

  // Skrócony zapis: automatycznie przypisuje parametry do zmiennych instancji
  Dog(this.name, this.breed);
}

Obie wersje dają ten sam rezultat. Skrócona składnia to popularna funkcja języka Dart, która eliminuje konieczność ręcznego wpisywania this.name = name.

Możesz również dodać domyślne wartości parametrów:

class Cat {
  String name;
  int age;

  Cat(this.name, [this.age = 1]); // age domyślnie wynosi 1
}

Cat fluffy = Cat('Fluffy', 3);
Cat whiskers = Cat('Whiskers'); // age domyślnie wynosi 1

print('${fluffy.name} is ${fluffy.age}');    // Fluffy ma 3 lata
print('${whiskers.name} is ${whiskers.age}'); // Whiskers ma 1 rok

Najważniejsze: konstruktory zapewniają, że każdy obiekt jest prawidłowo inicjalizowany danymi w chwili utworzenia, dzięki czemu nie musisz później ręcznie ustawiać zmiennych.

challenge icon

Wyzwanie

Łatwy

Otrzymujesz pliki PHP (book.dart i driver.dart), aby zaimplementować system obsługi książek.

Twoje zadania:

  • Uzupełnij klasę Book w pliku book.dart, dodając konstruktor, który inicjalizuje title, author i pages: użyj skróconej składni Dart Book(this.title, this.author, this.pages);
  • W pliku driver.dart utwórz obiekt Book dla 'Harry Potter', którego autorem jest 'J.K. Rowling', i ustaw liczbę stron na 400

Postępuj zgodnie z komentarzami TODO w każdym pliku.

Spróbuj swoich sił

import 'book.dart';

void main() {
  // TODO: Utwórz obiekt Book z następującymi danymi:
  // title: 'Harry Potter', author: 'J.K. Rowling', pages: 400
  Book myBook = ?;

  print("'${myBook.title}' by ${myBook.author}, ${myBook.pages} pages");
}
quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Programowanie obiektowe

Poćwicz samodzielnie: Kompilator Dart online