💡

【Dart基礎】クラスとインスタンス

2021/11/21に公開

今記事では、下記の2つのツイートについて記事で説明していきます。

https://twitter.com/FlutterUniv/status/1428642971700932611?s=20

https://twitter.com/FlutterUniv/status/1431164587466952705?s=20

クラスとインスタンス

オブジェクト指向言語であるDartを用いてFlutter開発をするにあたってクラスとインスタンスの理解をすることは重要です。初心者の方でも、ある程度FlutterでUIが作れるようになったら、この辺も理解して進めていきましょう。

クラスとは

クラスは型と呼ぶこともあります。Stringとかintとかboolとかは最初から用意された型ですが、アプリ開発をしていくにあたって、この最初から用意された型だけではなく、自作の型(クラス)を作ることが多いです。

img1

上図のように設計図と表現することもできます。それだけでは実態を持ちませんが、実態の形をclassで定義します。

class Todo {
  String title;
  bool isDone;
}

↑これが自作のTodoクラスです。この定義の場合、TodoというクラスはtitleとisDoneというフィールドを持ちます。

インスタンスとは

定義されたクラスをベースに、実体化されたものがインスタンスです。

つまり、今回のケースでは、やること(Todo)が3つある場合、インスタンスは3つになります。

image2

上図では、titleが「洗濯」のTodoインスタンスが1つ、titleが「掃除」のTodoインスタンスが1つ、titleが「買い物」のTodoインスタンスが1つ作られています。

インスタンスの作り方(インスタンス化、初期化)

定義されたTodoクラスはインスタンス化されて初めて意味をなします。

image3

一般的にTodoクラスのインスタンス化は下記のように行います。

final todo = Todo();

todoという名前の変数にTodoがインスタンス化されて突っ込まれています。このようにクラスの名前の後ろで()で囲むとインスタンス化されます。()の中に、titleやisDoneなどのプロパティを入れてインスタンス化したりすることもあります。

ちなみにインスタンス化のことを初期化と言ったりします。

今回はインスタンス化についての概念を理解してもらうことが目的なので、説明はここまでにしておきます。

まとめ

以上です。今記事では以下の2つのツイートをベースにクラスとインスタンスについての説明をしてみました。ツイートの画像には記事で説明してないことも書かれているので、チェックしてみてください。

https://twitter.com/FlutterUniv/status/1428642971700932611?s=20

https://twitter.com/FlutterUniv/status/1431164587466952705?s=20

Flutter大学の公式アプリでも、上記のような教材をみることができますので、よければ入学して、勉強に活用してみてください。

https://flutteruniv.com

Flutter大学

Discussion