Menu
Coddy logo textTech

インスタンス変数

CoddyのDartジャーニー「オブジェクト指向プログラミング」セクションの一部 — レッスン 7/110。

インスタンス変数は、クラス内で宣言される変数です。そのクラスから作成された各オブジェクトは、他のすべてのオブジェクトから独立した、これらの変数の独自のコピーを持ちます。

インスタンス変数は、型とオプションのデフォルト値を指定して宣言します:

class Student {
  String school = 'Dart Academy'; // デフォルト値あり
  String name = '';               // 空のデフォルト値
  int age = 0;                    // デフォルト値は0
}

デフォルト値を持つ変数は、新しいオブジェクトごとに同じ値で始まります。nameageのような変数は、値を設定するまで空またはゼロで始まります。

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 はデフォルト値を持っているため、両方のオブジェクトで同じであることに注目してください。一方で、nameagesetInfo を通じて個別に設定されたため、各オブジェクトに固有です。

challenge icon

チャレンジ

簡単

student.dart 内の Student クラスを完成させてください:

  1. デフォルト値が 'Dart Academy'String school インスタンス変数を宣言します
  2. デフォルト値が ''String name インスタンス変数を宣言します
  3. デフォルト値が 0int age インスタンス変数を宣言します
  4. String nameint age をパラメータとして受け取り、this を使用してそれらをオブジェクトに設定する setInfo メソッドを追加します

driver.dart ファイルは、2人の生徒を作成し、その情報を表示することでクラスをテストします(ロックされています)。

チートシート

インスタンス変数は、クラス内で宣言される変数です。各オブジェクトは、これらの変数の独自のコピーを保持します。

型とオプションのデフォルト値を指定してインスタンス変数を宣言します:

class Student {
  String school = 'Dart Academy'; // デフォルト値あり
  String name = '';               // 空のデフォルト値
  int age = 0;                    // 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}');
// 出力: 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腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

オブジェクト指向プログラミングのすべてのレッスン