【Dart】初心者向けクラスの使い方

Dart初心者向け:クラスの使い方

Dartは、Googleが開発したオブジェクト指向プログラミング言語であり、Flutterというモバイルアプリケーション開発フレームワークの公式言語としても知られています。この記事では、Dartの基本的なクラスの使い方について解説します。クラスは、オブジェクト指向プログラミングの重要な機能の一つであり、Dartにおいてもその重要性は高いです。

概要

  1. クラスとは何か
  2. クラスの作成とインスタンス化
  3. コンストラクタ
  4. メソッド
  5. プロパティ
  6. ゲッターとセッター
  7. 継承
  8. 抽象クラス

クラスとは何か

クラスは、オブジェクト指向プログラミングにおいて、オブジェクトを生成するための設計図のようなものです。クラスは、データ(プロパティ)と振る舞い(メソッド)を持つオブジェクトを生成するための設計を定義します。Dartでは、クラスは

class

キーワードを使用して定義します。

クラスの作成とインスタンス化


class Person {
  String name;

  void sayHello() {
    print('Hello, my name is $name');
  }
}

void main() {
  var person1 = Person();
  person1.name = 'Alice';
  person1.sayHello(); // 出力: Hello, my name is Alice
}

上記の例では、

Person

クラスを定義し、そのインスタンスを作成しています。インスタンスを作成するには、

class

キーワードで定義されたクラス名に

()

を付けて呼び出します。インスタンスを作成した後に、そのインスタンスのプロパティやメソッドにアクセスすることができます。

コンストラクタ

コンストラクタは、クラスのインスタンスが作成されるときに実行される特別なメソッドです。Dartでは、コンストラクタはクラス名と同じ名前のメソッドを定義することで作成できます。


class Person {
  String name;

  Person(String inputName) {
    name = inputName;
  }

  void sayHello() {
    print('Hello, my name is $name');
  }
}

void main() {
  var person1 = Person('Bob');
  person1.sayHello(); // 出力: Hello, my name is Bob
}

上記の例では、

Person

クラスにコンストラクタを追加し、インスタンスを作成する際に名前を指定しています。

メソッド

メソッドは、クラスが持つ振る舞いを定義するための関数です。Dartでは、メソッドをクラスの中に定義します。


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

void main() {
  var calc = Calculator();
  print(calc.add(3, 5)); // 出力: 8
}

上記の例では、

Calculator

クラスに

add

メソッドを追加し、そのメソッドを使用して2つの数値を足しています。

プロパティ

プロパティは、クラスが持つデータを表します。Dartでは、クラスの中で変数を宣言することでプロパティを定義します。


class Rectangle {
  int width;
  int height;

  int get area {
    return width * height;
  }
}

void main() {
  var rect = Rectangle();
  rect.width = 5;
  rect.height = 10;
  print(rect.area); // 出力: 50
}

上記の例では、

Rectangle

クラスに

width

height

のプロパティを追加し、さらに

area

という計算されたプロパティを定義しています。

ゲッターとセッター

Dartでは、プロパティの値を取得するためのゲッターと、値を設定するためのセッターを定義することができます。


class Circle {
  double _radius;

  double get radius {
    return _radius;
  }

  set radius(double value) {
    if (value >= 0) {
      _radius = value;
    } else {
      throw('Radius cannot be negative');
    }
  }
}

void main() {
  var circle = Circle();
  circle.radius = 5;
  print(circle.radius); // 出力: 5.0
}

上記の例では、

Circle

クラスに

radius

プロパティのゲッターとセッターを定義しています。

継承

クラスは、他のクラスを継承することができます。継承を使用すると、既存のクラスの機能を再利用しながら新しい機能を追加することができます。


class Animal {
  void makeSound() {
    print('Some generic sound');
  }
}

class Cat extends Animal {
  void makeSound() {
    print('Meow');
  }
}

void main() {
  var cat = Cat();
  cat.makeSound(); // 出力: Meow
}

上記の例では、

Animal

クラスを継承して新しい

Cat

クラスを定義し、

makeSound

メソッドをオーバーライドしています。

抽象クラス

抽象クラスは、そのクラス自体のインスタンスを作成することができないクラスです。抽象クラスは、他のクラスによって継承されることを意図して設計されています。


abstract class Shape {
  void draw();
}

class Circle extends Shape {
  void draw() {
    print('Drawing a circle');
  }
}

void main() {
  var circle = Circle();
  circle.draw(); // 出力: Drawing a circle
}

上記の例では、

Shape

クラスを抽象クラスとして定義し、

Circle

クラスでその抽象メソッドを実装しています。

まとめ

本記事では、Dartにおけるクラスの基本的な使い方について解説しました。クラスは、オブジェクト指向プログラミングの重要な概念であり、Dartを理解する上で欠かせない要素です。クラスを使いこなすことで、より効率的で保守しやすいコードを書くことができます。是非、これらの基本をマスターし、Dartでの開発を楽しんでください。

よくある質問

  • Q. クラスとは何ですか?
  • A: クラスは、オブジェクト指向プログラミングで使用されるデータ構造であり、関連するデータとメソッドを1つの単位にまとめたものです。

  • Q. クラスを定義する方法は?

  • A: Dartでは、クラスを定義するには

    class

    キーワードを使用します。例えば、

    class MyClass { }

    のように定義します。

  • Q. クラスのコンストラクタとは何ですか?

  • A: クラスのインスタンスを作成する際に呼び出される特殊なメソッドであり、

    MyClass()

    のようにクラス名と同じ名前のメソッドを定義することで実装します。

  • Q. クラスの継承とは何ですか?

  • A: クラスの継承とは、あるクラスが別のクラスの特性を引き継ぐことを意味し、Dartでは

    extends

    キーワードを使用して継承を実装します。

  • Q. クラスのインスタンスを作成する方法は?

  • A: クラスのインスタンスを作成するには、クラス名の後に
    ()

    をつけてコンストラクタを呼び出します。例えば、

    MyClass myObject = MyClass();

    のようにします。

0 0 votes
Article Rating
Subscribe
Notify of
guest

0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x