オブジェクト指向言語の特徴とDartの基礎

Flutterを使ったアプリ開発 Flutter

今回は、Dartが含まれる、オブジェクト指向言語の特徴について説明します。

はじめに

Dartは、JavaやC#と違い、1つのファイルの中で複数のモジュールを作成できます。

プライベートClass、変数

Javaと異なり、Dartではアクセス制限をつけるのにpublic、protected、privateなどのキーワードを使いません。Dartでは、名前の最初に_(アンダースコア)をつけることで、privateとなるのです。つまり、今までこのように書いていたのですが、

これではエラーが出てしまい、下のようにして使うということです。

コンストラクタ

デフォルトコンストラクタ

Dartでは、コンストラクタを定義しないと、自動でデフォルトコンストラクタが作成されます。

コンストラクタ構文のショートカット

インスタンス変数に値をセットするのに、「this.[インスタンス変数名]」という分を使うことができます。

Newキーワード

Dartはコンストラクタを呼び出す際に、「New」キーワードは必要ありません。(使いたい場合は使うこともできます)

名前付きコンストラクタ

Dartでは、コンストラクタ名.[好きな名前]とすることで、複数のコンストラクタを定義することができます。Javaでいうオーバーロードの代わりとして使えます。

コンストラクタのパラメータ

コンストラクタは、メソッドと同様、異なる方のパラメータを持つことができます。

factoryコンストラクタ

新しいインスタンスを作らない可能性がある場合、factoryというキーワードを使うことができます。factoryは、最後に変数を返すことができます。以下に例を示します。

インスタンス変数

アクセス制限を明示しない場合

変数の制限を明示しない場合、変数はpublicとして作成されます。

デフォルト値

変数のデフォルト値はnullです。

コンストラクタとメソッドのパラメータ

Flutterはコンストラクタやメソッドのパラメータについて、とても柔軟で、以下3つの種類があります。

  1. 必要
  2. あってもなくてもよい
  3. 名前付き

必要

まずは、パラメータが必要なものです。

あってもなくてもよい

次は、パラメータがあってもなくてもよいものです。これは、パラメータを[]で囲うことで明示します。

値を入れなかった場合はnullが入ります。

名前付き

名前付きのパラメータはすべてあってもなくてもよいものです。これは、パラメータの最後に定義します。

これも、値が入れられなかった場合、nullが入ります。

requiredデコレータ

「@required」をつけることで、名前付きパラメータを必須にすることができます。この機能は、DartではなくFrutterの機能であるため、Dartpadでは動きません。

インターフェイス

Dartは暗黙的インターフェイスを持ちます。

名前の通り、Dartではすべてのクラスは暗黙的にインターフェイスを持ち、それを公開しています。

他に

Method Cascades

Method Cascadesは、簡潔なコードを書くのに役立ちます。

タイトルとURLをコピーしました