flutter / dart 筆記:StatelessWidget 與類別繼承

基本概念

  1. 類別是物件的模型,物件是根據類別產生的實體
  2. 類別裡有資料和方法,方法是處理類別內部資料的函式
  3. 類別的目的是為了保護資料
  4. 類別可以繼承,好處是讓一個類別具有另一個類別的功能,不需重覆編寫

//這是 Person 類別
class Person {
  String name;    //宣告儲存姓名的物件

  Person(String name) {     // Person 類別的建構式,並且傳入 參數name (必要的)
    this.name = name;       //把 參數name 的內容設定給類別的 name 物件
  }

  void setName(String name){    //void 表示沒有傳回值
    this.name = name
  }

  String getName(){
    return name;                //return 傳回 物件name 的值
  }
}

class Student extends Person {    //extends 表示繼承
  int score;          //宣告儲存成績的物件

  Student (String name, int score) : super(name) {
    this.score = score;
  }

  void setScore(int score){
    this.score = score;
  }

  int getScore(){
    return score;
  }
}

//主函式,程式從這裡開始執行
void main(){
  Person p = Person('王一');
  Student s = Student('李二', 90);
  p.setName('王二');
  s.setName('張三');
  s.setScore(99);
}
我們要讓 app 去繼承 StatelessWidget ,程式碼如下

import 'package:flutter/material.dart';

void main() => runApp(App());

class App extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    var appTitle = Text('first flutter app'),
        hiFlutter = Text(
          'Hi, Flutter',
          style: TextStyle(fontSize: 60),
        );

    var appBody = Center(
      child: hiFlutter,
    );

    var appBar = AppBar(
      title: appTitle,
    );

    var app = MaterialApp( //裝進 MaterialApp 裡
      home: Scaffold(
        appBar: appBar,
        body: appBody,
      ),
    );

    return app;
  }
}