クラスとオブジェクト
CoddyのDartジャーニー「オブジェクト指向プログラミング」セクションの一部 — レッスン 4/110。
クラスとオブジェクトは異なる目的で使用されます。クラスは設計図であり、オブジェクトはその設計図から作成されるものです。
以下は、インスタンス変数を持つクラスの例です:
class Dog {
String name = '';
String breed = '';
}クラス内で宣言された変数(name や breed のような)は、そのクラスから作成された各オブジェクトに属します。インスタンス変数については、後ほど詳しく説明します。
同じクラスから複数のオブジェクトを作成します:
Dog dog1 = Dog();
Dog dog2 = Dog();各オブジェクトは、これらの変数に対してそれぞれ固有の値を持つことができます。
dog1.name = 'Nicky';
dog1.breed = 'Siberian Husky';
dog2.name = 'Teemon';
dog2.breed = 'Labrador';オブジェクトの変数にアクセスするには、ドット演算子 . を使用します:
print('${dog1.name} is a ${dog1.breed}');
print('${dog2.name} is a ${dog2.breed}');出力:
Nicky is a Siberian Husky
Teemon is a Labrador主な違い: クラス Dog はすべての犬が共有する構造を定義しますが、一方 dog1 と dog2 はそれぞれ独自のデータを持つ個別のオブジェクトです。
チャレンジ
簡単Studentクラスから2つの学生オブジェクトを作成し、それらの変数を設定するようにコードを完成させてください。
student.dart:Studentクラスが含まれています(ロック済み)driver.dart: 2つのオブジェクトを作成し、それらのデータを設定します
次の値を設定してください:
student1: 名前は'Alice'、成績は'A'student2: 名前は'Bob'、成績は'B'
チートシート
クラスは、オブジェクトの構造と動作を定義する設計図です。オブジェクトは、クラスから作成されたインスタンスです。
インスタンス変数を持つクラスを定義します:
class Dog {
String name = '';
String breed = '';
}クラスからオブジェクトを作成します:
Dog dog1 = Dog();
Dog dog2 = Dog();ドット演算子 . を使用して、オブジェクトの変数にアクセスし、変更します:
dog1.name = 'Nicky';
dog1.breed = 'Siberian Husky';
dog2.name = 'Teemon';
dog2.breed = 'Labrador';オブジェクトの変数にアクセスします:
print('${dog1.name} is a ${dog1.breed}');
// 出力: Nicky is a Siberian Husky自分で試してみよう
import 'student.dart';
void main() {
// TODO: 2つの Student オブジェクトを作成します
// TODO: student1 の名前と成績を設定します (name: 'Alice', grade: 'A')
// TODO: student2 の名前と成績を設定します (name: 'Bob', grade: 'B')
print('${student1.name} has grade ${student1.grade}');
print('${student2.name} has grade ${student2.grade}');
}
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
オブジェクト指向プログラミングのすべてのレッスン
4Null Safety
Null Safety 入門Nullable と Non-Nullable? 演算子と ! 演算子late キーワードと Null SafetyNull-Aware 演算子クラスにおける Null Safetyまとめ:ユーザープロフィールシステム10コレクションとジェネリクス
List, Set, Map の概要型安全なコレクションジェネリッククラスジェネリックメソッドジェネリクスの制約Iterable と Iteratorまとめ:ジェネリックなストレージ