ダート06クラスの語学学習

ダートの言語学習06

著者:ScorpioDong

1.クラス

ダートは、オブジェクト指向言語です。それは、このようなクラス、インターフェイスなどのオブジェクト指向プログラミングをサポートしています。クラスのOOPの側面には、オブジェクト/テンプレートの青写真を作成することです。クラスは、データオブジェクトをカプセル化します。ダートはビルトインクラスの概念をサポートしています。

クラスの1.1声明

  • 使用classダートでクラスを宣言するキーワード。
  • クラス定義キーワードclassクラス名に続いて先頭に、。
  • クラス名は、大きなこぶの命名法を使用することをお勧めします。
  • クラス名は、カッコの組に包まれたクラス本体が続きます。
class Test {
    // Fields
    String name;
    // Getters and Setters
    // Constructors
    Test() {
        this.name = "张三";
    }
    // Functions
    void eat() {
        print("$name eatting...");
    }
}

クラスボディ・フィールド、ゲッタとセッタ、コンストラクタと関数のオプションであり、定義された需要

  • フィールド(フィールド) - フィールドクラスに宣言された変数、フィールドは、オブジェクトに関連するデータを表します。
  • セッターとゲッターは - フィールドの初期値を許可し、クラス、各クラスに関連付けられたデフォルトのゲッター/セッターを取得します。しかし、デフォルト値は明示的にセッター/ゲッターを定義することでオーバーライドすることができます。
  • コンストラクタ(コンストラクタ) - オブジェクトクラス用のメモリを割り当てることが責任を負います。
  • 関数(関数) - 操作対象の機能は、それらが時には方法と呼ばれ、取り出すことができます。

機能属性とアクセスクラス1.2の例

使用newクラスのクラス名に続くキーワードの例が作成されます。

main() {
    var obj = new Test();
    print(obj.name);
    obj.eat();
}
class Test {
    // Fields
    String name;
    // Getters and Setters
    // Constructors
    Test() {
        this.name = "张三";
    }
    // Functions
    void eat() {
        print("$name eatting...");
    }
}

プロパティクラスによってアクセスされるクラスのオブジェクトインスタンスの方法。使用.のアクセスポイントに蓄積されたデータメンバー。

1.3コンストラクタ

  • コンストラクタは、変数の初期化クラスを担当して、機能の特殊なクラスです。
  • ダートコンストラクタはクラス名と同じ機能です。
  • コンストラクタのパラメータが存在していてもよいです。コンストラクタは戻り値はありません。
  • そうでない場合は、コンストラクタ、ダート引数なしのデフォルトの空のコンストラクタ。
class Test {
    // Fields
    String name;
    // Getters and Setters
    // Constructors

    Test() { // <--构造函数,初始化了name变量
        this.name = "张三";
    }
    // Functions
    void eat() {
        print("$name eatting...");
    }
}

ダートという名前のコンストラクタは、クラスは複数のコンストラクタを定義することができるようにすることを、提供します。
文法类名.构造方法名(形参列表) {函数体}

class Test {
    // Fields
    String name;
    // Getters and Setters
    // Constructors

    // 构造函数,初始化了name变量
    Test() {
        this.name = "张三";
    }

    // 命名构造函数
    Test.nameTest(String name) {
        this.name = name;
    }
    // Functions
    void eat() {
        print("$name eatting...");
    }
}

1.4このキーワード

このキーワードは、クラスの現在のインスタンスを参照します。ここでは、パラメータ名とクラス名フィールドは同じです。したがって、このキーワード接頭辞を持つフィールドのクラスをあいまいさを避けるためです。

class Test {
    // Fields
    String name;
    // Getters and Setters
    // Constructors

    // 构造函数,初始化了name变量
    Test() {
        this.name = "张三"; // this关键字的使用
    }

    // 命名构造函数
    Test.nameTest(String name) {
        // this关键字的使用,因为字段名和形参名一样,冲突
        this.name = name; 
    }
    // Functions
    void eat() {
        print("$name eatting...");
    }
}

1.5ゲッターとセッター

ゲッターとセッター(アクセスユニットと変更と呼ばれる)は、プログラムは各階級の値を初期化フィールドを取り出すことができます。GETキーワード定義ゲッターまたはアクセサを使用してください。セッターまたはアクセスが設定されたキーワードを使用して定義されます。

各クラスに関連付けられたデフォルトのゲッター/セッター。しかし、デフォルト値は明示的にセッター/ゲッターを定義することでオーバーライドすることができます。ゲッターは、パラメータや戻り値、セッターパラメータを1つだけ持っていませんが、値を返しません。

main(List<String> args) {
  var a = new Test();
  a.test_name = "李四";
  print(a.test_name);  
}

class Test {
    // Fields
    String name;
    // Getters and Setters

    // 定义name 的 Getter
    String get test_name {
        return name;
    }

    // 定义name 的 Setter
    void set test_name(String name) {
        this.name = name;
    }

    // Constructors

    // 构造函数,初始化了name变量
    Test() {
        this.name = "张三"; // this关键字的使用
    }

    // 命名构造函数
    Test.nameTest(String name) {
        // this关键字的使用,因为字段名和形参名一样,冲突
        this.name = name; 
    }
    // Functions
    void eat() {
        print("$name eatting...");
    }
}

1.6パッケージ

  • ダートは、公共およびその他の権利修飾子、プライベートではありません。
  • あなたは使用することができ_、プライベートとしてマークされた接頭識別子に下線を。
class Test {
    // Fields
    String _name; //标记私有外部无法访问
    // Getters and Setters

    // 定义name 的 Getter
    String get test_name {
        return _name;
    }

    // 定义name 的 Setter
    void set test_name(String name) {
        this._name = name;
    }

    // Constructors

    // 构造函数,初始化了name变量
    Test() {
        this._name = "张三"; // this关键字的使用
    }

    // 命名构造函数
    Test.nameTest(String name) {
        // this关键字的使用,因为字段名和形参名一样,冲突
        this._name = name; 
    }
    // Functions
    void eat() {
        print("$_name eatting...");
    }
}

1.7継承

  • ダートは、既存のクラスから新しいクラスを作成するプログラムの能力で、継承の概念をサポートしています。親/スーパーよりもクラスと呼ばれる新しいクラスを作成するために拡張。新しく作成したクラスと呼ばれた子/サブクラス。
  • 使用して、クラスextends別のクラスから継承されたキーワードを。サブクラスは親クラスのコンストラクタ以外のすべてのプロパティとメソッドを継承します。
  • ダートクラスは、クラスが一つだけの親を持つことができている唯一の単一継承モデルをサポートしています。
main(List<String> args) {
  var obj = new B();
  print(obj.a);
}

class A {
  int a = 5;
}

class B extends A {

}

実行

5
メソッドのオーバーライド
  • サブクラスのオーバーライド・メカニズムは、その親クラスのメソッドを再定義する方法です。
  • メソッドのオーバーライド@overrideフラグ。
  • この方法は、一致するようにメソッドの親クラスとメソッド名、パラメータリストや戻り値の型をオーバーライドします。
main(List<String> args) {
  var obj = new B();
  obj.F();
}

class A {
  int a = 5;
  F() {
    print("123");
  }
}

class B extends A {
  @override
  F() {
      print("456");
    }
}

実行

456
公開された59元の記事 ウォン称賛45 ビュー20000 +

おすすめ

転載: blog.csdn.net/m0_37771142/article/details/105036412