Menu
Coddy logo textTech

クラスとオブジェクト

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

クラスとオブジェクトは異なる目的で使用されます。クラスは設計図であり、オブジェクトはその設計図から作成されるものです。

以下は、インスタンス変数を持つクラスの例です:

class Dog {
  String name = '';
  String breed = '';
}

クラス内で宣言された変数(namebreed のような)は、そのクラスから作成された各オブジェクトに属します。インスタンス変数については、後ほど詳しく説明します。

同じクラスから複数のオブジェクトを作成します:

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 はすべての犬が共有する構造を定義しますが、一方 dog1dog2 はそれぞれ独自のデータを持つ個別のオブジェクトです。

challenge icon

チャレンジ

簡単

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}');
}
quiz icon腕試し

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

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