Menu
Coddy logo textTech

Zmienne instancji

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

Zmienne instancji to zmienne zadeklarowane wewnątrz klasy. Każdy obiekt utworzony na podstawie klasy otrzymuje własną kopię tych zmiennych, niezależną od wszystkich pozostałych obiektów.

Deklaruj zmienne instancji z typem i opcjonalną wartością domyślną:

class Student {
  String school = 'Dart Academy'; // ma wartość domyślną
  String name = '';               // domyślnie pusty ciąg znaków
  int age = 0;                    // domyślnie zero
}

Zmienne z wartościami domyślnymi mają taką samą wartość dla każdego nowego obiektu. Zmienne takie jak name i age pozostają puste lub mają wartość zero, dopóki ich nie ustawisz.

Użyj metody z this, aby ustawić dane poszczególnych obiektów:

class Student {
  String school = 'Dart Academy';
  String name = '';
  int age = 0;

  void setInfo(String name, int age) {
    this.name = name; // this.name = zmienna instancji
    this.age = age;   // this.age  = zmienna instancji
  }
}

Utwórz uczniów i przypisz im dane:

Student student1 = Student();
Student student2 = Student();

student1.setInfo('Alice', 20);
student2.setInfo('Bob', 22);

Dostęp do zmiennych instancji uzyskasz za pomocą operatora kropki:

print('${student1.name} is ${student1.age} at ${student1.school}');
print('${student2.name} is ${student2.age} at ${student2.school}');

Wynik:

Alice is 20 at Dart Academy
Bob is 22 at Dart Academy

Zauważ, że school jest takie samo dla obu obiektów, ponieważ ma wartość domyślną, podczas gdy name i age są unikalne dla każdego obiektu, ponieważ zostały ustawione indywidualnie za pomocą setInfo.

challenge icon

Wyzwanie

Łatwy

Uzupełnij klasę Student w pliku student.dart:

  1. Zadeklaruj zmienną instancji String school z domyślną wartością 'Dart Academy'
  2. Zadeklaruj zmienną instancji String name z domyślną wartością ''
  3. Zadeklaruj zmienną instancji int age z domyślną wartością 0
  4. Dodaj metodę setInfo, która przyjmuje parametry String name i int age oraz ustawia je w obiekcie za pomocą this

Plik driver.dart przetestuje Twoją klasę, tworząc dwóch uczniów i wypisując ich informacje (plik zablokowany).

Spróbuj swoich sił

import 'student.dart';

void main() {
  Student student1 = Student();
  Student student2 = Student();

  student1.setInfo('Alice', 20);
  student2.setInfo('Bob', 22);

  print('${student1.name} is ${student1.age} at ${student1.school}');
  print('${student2.name} is ${student2.age} at ${student2.school}');
}
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