インスタンス変数
CoddyのDartジャーニー「オブジェクト指向プログラミング」セクションの一部 — レッスン 7/110。
インスタンス変数は、クラス内で宣言される変数です。そのクラスから作成された各オブジェクトは、他のすべてのオブジェクトから独立した、これらの変数の独自のコピーを持ちます。
インスタンス変数は、型とオプションのデフォルト値を指定して宣言します:
class Student {
String school = 'Dart Academy'; // デフォルト値あり
String name = ''; // 空のデフォルト値
int age = 0; // デフォルト値は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 Academyschool はデフォルト値を持っているため、両方のオブジェクトで同じであることに注目してください。一方で、name と age は setInfo を通じて個別に設定されたため、各オブジェクトに固有です。
チャレンジ
簡単student.dart 内の Student クラスを完成させてください:
- デフォルト値が
'Dart Academy'のString schoolインスタンス変数を宣言します - デフォルト値が
''のString nameインスタンス変数を宣言します - デフォルト値が
0のint ageインスタンス変数を宣言します String nameとint 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}');
}
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
オブジェクト指向プログラミングのすべてのレッスン
4Null Safety
Null Safety 入門Nullable と Non-Nullable? 演算子と ! 演算子late キーワードと Null SafetyNull-Aware 演算子クラスにおける Null Safetyまとめ:ユーザープロフィールシステム10コレクションとジェネリクス
List, Set, Map の概要型安全なコレクションジェネリッククラスジェネリックメソッドジェネリクスの制約Iterable と Iteratorまとめ:ジェネリックなストレージ