こんにちはkzyです。
flutterで他クラスの関数や変数を使う方法を探している方向け。
開発を進める上で他クラスから値をインポートして使うことは頻繁にあると思います。
どのように他クラス内のデータにアクセスするのか、検証したソースコードでわかりやすく解説したいと思います。
目次
この記事は以下のような方を対象者としています。
- flutter初学者の方
- flutterで別クラスの変数/関数の参照のやり方が分からない方
前置き:別クラス参照で重要となるのはインスタンス化
前提としてflutterで開発を進めるためにはクラスやオブジェクト、インスタンスといった概念を理解する必要があります。(意味は後述します)
この記事ではflutterで他クラスの変数や関数を使うために知る必要があることのみフォーカスして解説します。
flutterで他クラスの変数/関数を使う方法ステップ1:ファイルのインポートをする
他クラスで定義した関数や変数を使いたい場合はインポートを行う必要があります。
インポートはよくファイルの最初に書かれているこの文言です。
1 |
|
命名規則は下記の通りです。
1 |
|
※インポートのファイルパスは.packagesに定義されています。
ちなみに自分でimport…と書かなくても他クラスの変数名や関数名をIDEが自動でインポートしてくれます。
flutterで他クラスの変数/関数を使う方法ステップ2:アクセススコープを確認する
これがこの記事の一番重要なパートです。
アクセススコープとは他クラスからどの変数や関数までアクセスが可能なのかを決める領域のことです。
こちらの画像の淡い青色の部分がクラス外、濃い色の部分がクラス内を表しています。
クラス外に定義されているKEY_NAMEという変数、およびsubtractCalc関数はグローバル変数/関数と呼ばれます。
これらはインスタンス化が不要で他クラスから直接使うことができます。
一方クラス内に定義されている変数/関数はメンバ変数/関数と呼ばれます。
これらは呼び出し先にてインスタンス化しないと使えません。
flutterで他クラスの変数/関数を使う方法ステップ3:インスタンス化する
インスタンス化とはクラスを実体化(オブジェクト化)してクラス内部の変数/関数に参照できるようにすることです。
具体的にコードを使って説明します。
一つはmain.dart(呼び出し先)、もう一つはshopData.dart(呼び出し元)です。
1 |
|
1 |
|
これはmain.dartから別クラスであるshopData.dart内の変数/関数にアクセスしようとしています。
shopDataクラス外はグローバルスコープ(外部から参照可能)のため、インスタンス化無しで参照できます。
しかしshopDataクラス内で定義されているmultipleCalc関数,shop_id, shop_nameはインスタンス化せずにアクセスしようとしているためエラーになります。
このエラーを解消するためにはshopDataクラスをインスタンス化する必要があります。
1 |
|
これでエラーが解消され正常に他クラス内部の変数/関数を参照できるようになりました。
flutterで他クラスの変数/関数を使う方法:まとめ
今回の記事を要約すると下記の通りです。
- インスタンス化とは他クラスを実体化することでクラス内部のオブジェクトにアクセスできるようにすること
- クラス外部のオブジェクト(グローバル変数や関数)はインスタンス化無しでアクセス可能
- クラス内部のオブジェクト(メンバ変数や関数)はインスタンス化しないとアクセスできない
さいごに
ここまでお読みいただきありがとうございました。
僕のブログサイト「kzy.tech〜日本脱出のための教科書〜」がどのようなサービスで作られているかが気になる方は以下別記事にてご説明していますので、ご覧いただけますと小躍りして喜びます💃
また、海外移住の 英語とプログラミングを習得することを推奨しています。
これは私の経験則から言えることですが、上記二つのスキルがあれば海外移住は絶対に実現できます。
以下に僕が実際に使って効率よくプログラミング学習ができるおすすめサービスを載せます😌
速習!おすすめプログラミング勉強法【Udemy】
いくつかプログラミング学習サービスを利用しましたが、一番効率よく勉強できると感じたのはUdemyでした。
Udemyでは動画での説明や解説等もあり親切で、学習教材も豊富にあることから プログラミング初学者の方が短期間でエンジニアを目指したいのであれば、非常に良い教材だと思います。
ちなみに私は文系卒で社会人になってから独学でudemyを使ってプログラミングの勉強をして、実際にエンジニアとして採用されました
Udemyのコースは1つ1,000円ほどなので、ITの参考本を一冊(3,000円)を買うよりもUdemyのコースを購入する方が安い上により効率的にプログラミングを勉強できると思います。
世界最大級のオンライン学習サイトUdemy
また、別記事にてダナンでの生活やIT関連についても記事を書いていますのでクリックいただけると嬉しくて踊ります💃