Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Flutterハンズオン 3

Flutterハンズオン 3

Aya Ebata

August 26, 2024
Tweet

More Decks by Aya Ebata

Other Decks in Technology

Transcript

  1. クラス - 以下のようにプロパティにアクセスをする class Spacecraft { // ... void describe()

    { print('Spacecraft: $name'); var launchDate = this.launchDate; // ... } }
  2. クラス - 以下のようにクラスを呼び出す var voyager = Spacecraft('Voyager I', DateTime(1977, 9,

    5)); voyager.describe(); var voyager3 = Spacecraft.unlaunched('Voyager III'); voyager3.describe();
  3. 列挙型 - getterやメソッドも定義できる ※ isGiantはgetterで読み取り専用 enum Planet { // ...

    bool get isGiant => planetType == PlanetType.gas || planetType == PlanetType.ice; }
  4. 継承 - Dartは単一継承 -> 一つしか指定できない class Orbiter extends Spacecraft {

    double altitude; Orbiter(super.name, DateTime super.launchDate, this.altitude); }
  5. ミックスイン - 複数指定可能で、コードを再利用する時に使用 mixin Piloted { int astronauts = 1;

    void describeCrew() { print('Number of astronauts: $astronauts'); } } class PilotedCraft extends Spacecraft with Piloted {···}
  6. 練習問題1 - 以下を満たすクラスを作成しましょう 1. Orderクラスのプロパティにはアイテムと個数を持つ 2. orderNameというgetterを用意する 3. addメソッドを用意して、個数をインクリメントする void

    main() { var order = Order('ラーメン', 1); print(order.orderName); // 「ラーメンが1個」を出力 order.add(); print(order.orderName); // 「ラーメンが2個」を出力 }
  7. 練習問題1 解答例 class Order { String item; int total; String? get

    orderName => '$itemが$total個'; Order(this.item, this.total); void add() { total++; } }
  8. 練習問題2 - このソースコードはエラーで落ちます - エラーで落ちないように修正しましょう class Coffee { String _temperature;

    void heat() { _temperature = 'hot'; } void chill() { _temperature = 'iced'; } String serve() => _temperature + ' coffee'; }
  9. 練習問題2 解答例 class Coffee { late String _temperature; void heat() {

    _temperature = 'hot'; } void chill() { _temperature = 'iced'; } String serve() => _temperature + ' coffee'; }