【Flutter】staticを使う時と使わない時の違い

staticって、正直使う時ってどんな時?って思う方はいないでしょうか?
今回はサンプルコードを元に、違いを説明していきます。

1. staticを使った場合のサンプルコード:

class MathUtils {
  static int add(int a, int b) {
    return a + b;
  }
}

void main() {
  int result = MathUtils.add(3, 5);
  print(result); // 結果: 8
}

この例では、MathUtilsクラスのaddメソッドをstaticとして定義しています。これにより、インスタンスを作成する必要なく、MathUtilsクラスのメソッドを直接呼び出すことができます。

メリット:

  • インスタンスを作成せずにメソッドを呼び出せるため、シンプルで直感的なコードが可能です。

  • メモリの使用量が少なくなります。インスタンスを作成せずに共有のメソッドを呼び出すため、不要なオブジェクトの生成を避けることができます。

2. staticを使わない場合のサンプルコード:

class MathUtils {
  int add(int a, int b) {
    return a + b;
  }
}

void main() {
  MathUtils mathUtils = MathUtils();
  int result = mathUtils.add(3, 5);
  print(result); // 結果: 8
}

この例では、MathUtilsクラスのaddメソッドをstaticとして定義せずにインスタンスメソッドとして定義しています。メソッドを呼び出す前に、MathUtilsクラスのインスタンスを作成する必要があります。

メリット:

  • インスタンスメソッドは、クラスの内部状態(インスタンス変数)にアクセスできるため、複雑な状態やオブジェクト固有の振る舞いを表現することができます。

  • 継承を使用する場合、サブクラスでオーバーライド可能なメソッドとして定義することができます。

メリットは状況によって異なりますが、staticを使った場合は簡潔さとメモリの効率性が向上し、staticを使わない場合はインスタンス固有の状態と継承の柔軟性が得られます。使用する場合は、具体的な要件と設計に基づいて適切な選択を行う必要があります。

この記事が気に入ったらサポートをしてみませんか?