#13 Dartで学ぶクラスの基本
Dartのクラスは、Flutterアプリの画面部品(ウィジェット)を作る際にも基礎となる、重要な仕組みです。この記事では、Dartにおけるクラスの基本を解説します。
クラスを作ってみる
class Person {
String name;
Person(this.name);
void greet() {
print("こんにちは、$name です");
}
}
`Person(this.name)`という書き方だけで、受け取った値をプロパティに代入する初期化処理を省略して書けます。これは「コンストラクタの省略記法」と呼ばれ、Dartらしい簡潔さの一例です。
クラスからインスタンスを作る
var person = Person("太郎");
person.greet();
名前付きコンストラクタ
Dartでは、1つのクラスに複数の初期化方法を用意できる「名前付きコンストラクタ」という機能があります。
class Person {
String name;
Person(this.name);
Person.guest() : name = "ゲスト";
}
var guest = Person.guest();
用途に応じて分かりやすい名前を付けられるため、`Person.fromJson(...)`のようにデータの変換元を名前に含めるといった使い方もよくされます。
継承
他のクラスの機能を引き継ぎたい場合は`extends`を使います。
class Student extends Person {
int grade;
Student(String name, this.grade) : super(name);
}
`super(name)`で親クラス(`Person`)の初期化処理を呼び出しています。
Dartならではの注意点
Flutterでは、画面に表示する部品そのものが「クラス」として作られており、クラスの理解がそのままアプリ作りの土台になります。今回学んだ基本的なクラスの書き方は、この先Flutterの画面部品(ウィジェット)を作る際にそのまま活きてくることを意識しておきましょう。特に、Flutterのウィジェットは`StatelessWidget`や`StatefulWidget`といったクラスを継承して作られるため、名前付きコンストラクタや継承の考え方に早めに慣れておくと、公式ドキュメントやサンプルコードが読みやすくなります。
まとめ
Dartのクラスは`Person(this.name)`のような簡潔な初期化が特徴です。名前付きコンストラクタや`extends`による継承も、Flutter開発の土台になる重要な考え方として、しっかり理解しておきましょう。
本ページはプロモーションを含みます。
参考書籍(PR)
Dartをもっと学びたい方には「ゼロから学ぶFlutterアプリ開発」がおすすめです。
PR
コードを書かずに自動化したい方へ
「学んだけど自分の作業に組み込む時間がない」という方向けに、ダブルクリックで動く Windows専用の自動化ツールをオーダーメイドで作成しています。気になる方は こちらをご覧ください。
コメント
コメントを投稿