Menu
Coddy logo textTech

Переменные экземпляра

Часть раздела Объектно-ориентированное программирование путешествия по Dart на Coddy — урок 7 из 110.

Переменные экземпляра — это переменные, объявленные внутри класса. Каждый объект, созданный на основе класса, получает собственную копию этих переменных, независимую от всех остальных объектов.

Объявляйте переменные экземпляра с указанием типа и необязательным значением по умолчанию:

class Student {
  String school = 'Dart Academy'; // имеет значение по умолчанию
  String name = '';               // пустое значение по умолчанию
  int age = 0;                    // нулевое значение по умолчанию
}

Переменные со значениями по умолчанию начинаются с одного и того же значения для каждого нового объекта. Переменные, такие как name и age, остаются пустыми или равными нулю, пока вы их не установите.

Используйте метод с this для установки данных отдельного объекта:

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

  void setInfo(String name, int age) {
    this.name = name; // this.name = переменная экземпляра
    this.age = age;   // this.age  = переменная экземпляра
  }
}

Создайте студентов и присвойте им данные:

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}');

Вывод:

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

Обратите внимание, что school одинаково для обоих объектов, поскольку оно имеет значение по умолчанию, в то время как name и age уникальны для каждого объекта, поскольку они были установлены индивидуально через setInfo.

challenge icon

Задание

Легко

Завершите класс Student в файле student.dart:

  1. Объявите переменную экземпляра String school со значением по умолчанию 'Dart Academy'
  2. Объявите переменную экземпляра String name со значением по умолчанию ''
  3. Объявите переменную экземпляра int age со значением по умолчанию 0
  4. Добавьте метод setInfo, который принимает String name и int age в качестве параметров и устанавливает их для объекта, используя this

Файл driver.dart протестирует ваш класс, создав двух студентов и выведя их информацию (заблокировано).

Шпаргалка

Переменные экземпляра — это переменные, объявленные внутри класса. Каждый объект получает свою собственную копию этих переменных.

Объявляйте переменные экземпляра с указанием типа и необязательным значением по умолчанию:

class Student {
  String school = 'Dart Academy'; // имеет значение по умолчанию
  String name = '';               // пустое значение по умолчанию
  int age = 0;                    // нулевое значение по умолчанию
}

Используйте метод с ключевым словом this для установки данных конкретного объекта:

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

  void setInfo(String name, int age) {
    this.name = name; // this.name = переменная экземпляра
    this.age = age;   // this.age  = переменная экземпляра
  }
}

Создавайте объекты и присваивайте им данные:

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

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

Обращайтесь к переменным экземпляра с помощью оператора «точка»:

print('${student1.name} is ${student1.age} at ${student1.school}');
// Output: Alice is 20 at Dart Academy

Попробуйте сами

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 iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Объектно-ориентированное программирование