今回は、Flutterの開発言語であるDartの基礎として「クラス」と「インスタンス」について解説を行っていきます。
理解してそうで理解できていない、そんな内容としてよく取り上げられるのがこの「クラス」と「インスタンス」だと思います。
こちらの記事を最後まで読んでいただき、その悩みが解決できればと思います。
クラスとは?
クラスとは何なのか。よく説明として言われるのが「設計図」という表現です。
この表現がやはり一番わかりやすいと思います。
例えば、アプリの中にユーザーという概念が存在する場合に、そのユーザーがどういう要素によって形作られるのかを設定するのが「クラス」です。
クラスの定義方法
クラスの定義方法は以下です。
class クラス名 {}
今回は、名前と年齢という2つの要素から構成されるUserクラスの定義方法をもとにクラスの定義方法を理解していきましょう。
class User{
String? name ;
int? age;
}
クラス名の頭文字は大文字で記述します。
こちらのUserクラスの場合はnameとageというフィールド(メンバー変数)を持ちます。
また、クラス生成時に値を渡す処理を行いたい場合はクラス内にコンストラクタを定義します。
class User{
String? name;
int? age;
User(this.name, this.age); //コンストラクタ
}
コンストラクタに関する詳しい解説は以下記事にあります。よければあわせてご覧ください。
インスタンスとは?
インスタンスとは、クラスが実体化されたものです。
この表現の理解がむずかしく感じるかなと思います。
クラスというのはあくまで設計図なのでそのもの自体が情報をもつわけではありません。
先述のUserクラスの場合、ユーザーがもつ情報はnameとageの2種類があります、と書いているだけでそのクラスがどのような名前や年齢を持っているかは書かれていません。
そのUserクラスから名前は奥野で年齢は25歳のユーザーです、というような実体を作り出す行為をインスタンス化、作り出されたものをインスタンスと呼びます。
インスタンス化の方法
インスタンス化のテンプレートは以下です。
クラス名 変数名 = クラス名(フィールド1の値, フィールド2の値, ....);
これを先ほどのUserクラスに当てはめると以下になります。
User userInstance = User('pRyogram', 25);
これでnameがpRyogramでageが25のユーザーを作成することができました。
クラスのフィールドを呼び出す方法
クラスのフィールドを呼び出すには「 . 」を使用します。
void main() {
User userInstance = User('pRyogram', 25);
print(userInstance.name);
print(userInstance.age);
}
実行結果は以下です。
pRyogram
25
クラスを利用するメリット
最後に、書き方はわかったがなぜ利用する必要があるのか、そのメリットについて簡単にまとめておこうと思います。
クラスを利用するメリットは大きく3つあると考えています。
- 同じ内容を書かなくていい
- 変更の際に最低限のコード追加で済む
- ミスを防ぐことができる
順番に見ていきましょう。
同じ内容を書かなくていい
クラスを利用すると、同じ情報や処理を書かずに済むようになります。
クラスの定義の際に一度だけ情報や処理を定義すれば、あとはすのクラスからインスタンスを作成すれば同じ内容のコードを使い回すことができます。
これによりコードの重複を減らし、記述の手間や時間を減らすことができます。
変更の際に最低限のコード追加で済む
クラスを利用すれば、コードの変更の際に最低限のコード追加で済むようになります。
クラスを使わずに一つ一つの処理などを記述していた場合、修正の際に一つずつ変更して行く必要があります。
しかし、クラスを利用していればクラスに定義している内容を変更するだけで、クラスを使った部分すべてに変更が反映されます。
コードの変更が最低限の記述で済むようになるので効率的に開発ができるようになります。
ミスを防ぐことができる
クラスを利用するとコードを書く総量が減るため、ミスを防ぐことができます。
プログラミングでは、一文字でも書く内容が間違えているとエラーが発生し正しく動作しません。
人の手で書くコードはタイプミスなどの小さなエラーを生み出す原因になります。
クラスを使えば同じ内容を使い回すことができるため、コードを書く量を減らすことができます。
それにより、エラーなどのミスを防ぐことができるようになります。
おわりに
今回は、Flutterの開発言語であるDartの基礎として「クラス」と「インスタンス」について解説を行いました。
Flutterでの開発を行う上で、このクラスという概念は必須の知識となっているのでぜひこの機会に理解をしていただければと思っております。
最後まで読んでくださりありがとうございました。
コメント