[Flutter/Dart]「静的」と「動的」/「インスタンス変数」と「クラス変数」の違いとは

このページには広告が含まれる場合があります。

 

初心者向けのスマホアプリプログラミングでよく耳にする、「静的(スタティック)」と「動的(ダイナミック)」という概念について。

 

クラスとは?まずは基本の「設計図」のイメージ

クラスはプログラム上で「設計図」のような役割を果たしています。

たとえば「Car」というクラスを作ると、そのクラスは「車」という概念や特徴をまとめたひな型として使えるわけです。

クラスをベースにして、いろいろな車(インスタンス)を作成できます。

Car myCar = Car();
Car yourCar = Car();

このコードでは「Car」というクラスから、myCaryourCarという2つの車を作っています。

myCarはあなただけの車、yourCarは別の車といった具合に、それぞれのインスタンスは異なる車として扱えるのです。

実際の開発では、この「クラス」と「インスタンス」の使い分けがとても重要です。

 

静的メンバー(スタティック)とは?

静的メンバー、つまりスタティックなプロパティやメソッドを使うことで、「クラス全体に共通する情報」を一つにまとめられます。

たとえば、車の「メーカー名」は、すべてのインスタンスで共通の情報ですよね。わざわざインスタンスごとに設定する必要はありません。

そこで、クラスそのものに「スタティック変数」として保持すると便利です。

具体例として「メーカー名」をスタティック変数にしたい場合は、次のようにコードを書きます。

class Car {
  static String manufacturer = "Toyota";
}

このmanufacturer変数は、どのインスタンスからでもアクセスできますし、そもそもインスタンスを作らなくてもアクセス可能です。

 

インスタンス変数とクラス変数の違い

インスタンス変数は、各インスタンスがそれぞれの値を持ちます。

たとえば、myCar.coloryourCar.colorは別々の車の色として設定できます。一台ごとに異なる情報を持たせる場合に使います。

一方、クラス変数(スタティック変数)は、クラス全体で一つの値を共有します。

全インスタンスが同じ変数を参照し、どのインスタンスで値を変更しても他のインスタンスに影響を与えます。

車全体の「メーカー名」や「製造年」などのように、すべてのインスタンスで共通している情報を持たせる場合に便利です。

 

インスタンス変数とクラス変数の使い方

インスタンス変数を使いたい場合は、その前にインスタンスを作る必要があります。

この動的に生成される変数やメソッドは「インスタンス変数」や「インスタンスメソッド」と呼ばれます。

たとえば次のようにしてインスタンスを作り、その中の変数にアクセスします。

Car myCar = Car();
myCar.color = "Red";

一方、スタティックメンバーにはインスタンスが不要で、クラス名で直接アクセスできるのが特徴です。

これは、「共有情報」としてどのインスタンスにも同じ値を参照させる場合に便利です。

print(Car.manufacturer); // Toyota

 

まとめ

  • インスタンス変数:各インスタンスが異なる値を持つ。インスタンスを作った後にアクセス。
  • クラス変数(スタティック変数):クラス全体で一つの値を共有。インスタンス不要でアクセス可能。

この理解ができれば、DartやFlutterでのプログラミングもスムーズに進むはずです。

 

(詳しくは、以下の動画で説明していますので、よろしければご覧ください)

(注)以下のフォームより当社公式メールマガジンにご登録頂くことで
約6時間のFlutter動画講座が無料で受講できます!

(メールマガジンは登録無料・いつでも解除可)

[体験版]
ゼロからのFlutter
(Flutter初級編) 

 

【体験版講座に含まれるもの】
・約70本・約6時間の動画テキスト
・1つの課題アプリのソースコード
・Flutterアプリを作るための「環境構築ライブサポート(Google Meet)」
(「体験版」は全30時間超の「製品版」の約1/6を抜粋した講座です。「製品版」の詳細はこちらから)

 

【当社公式メルマガご登録6大特典】

\約6時間動画講座を無料プレゼント!/
今すぐ無料体験版に申し込む ▶
無料メルマガ登録で講座割引クーポンなど6大特典ゲット!

こんな記事も読まれています

今すぐプレゼントを受け取る(約6時間のFlutter初級編体験版動画講座を無料でプレゼント)

はじめての方へ


みんプロ式プログラミング講座体系・ラインナップ
みんプロ式プログラミング講座受講の流れ(割引特典利用方法)
サイトマップ(みんプロHPコンテンツ一覧)
運営会社概要

みんプロ作成アプリ





みんプロ式動画講座(コア・Flutter)

ゼロからのFlutter(初級編)-はじめてのプログラミングからアプリリリースまで-
Flutter中級編1-Web通信・設計・状態管理・DIの基礎-
Flutter中級編2-Firebase/地図・カメラ連携等の基礎-
Flutter中級編3-広告/アプリ内課金等の基礎-
Flutter中級編4-Webアプリとレスポンシブデザインの基礎-

みんプロ式動画講座(サテライト)

Flutter/Dartトラブルシューティング・小ネタ集(コア初級編受講で無料プレゼント)
ゼロからのGit・GitHub(コマンドラインツールを極力使わないバージョン管理入門)
Flutter/Dartにおける設計・状態管理・DIの解説集
Dart逆引き大辞典
Flutterにおけるテストの基礎

今すぐプレゼントを受け取る(約6時間のFlutter初級編体験版動画講座を無料でプレゼント)
TOP