サーチ…
クラスの作成
クラスは次のように作成できます:
class InputField {
int maxLength;
String name;
}
newキーワードを使用してクラスをインスタンス化すると、デフォルトでフィールド値がnullになります。
var field = new InputField();
次に、フィールド値にアクセスできます。
// this will trigger the setter
field.name = "fieldname";
// this will trigger the getter
print(field.name);
メンバー
クラスにはメンバーがいます。
インスタンス変数は、型名付き/なしで宣言でき、オプションで初期化されます。初期化されていないメンバは、コンストラクタによって別の値に設定されていない限り、 nullの値を持ちnull 。
class Foo {
var member1;
int member2;
String member3 = "Hello world!";
}
クラス変数は、 staticキーワードを使用して宣言されます。
class Bar {
static var member4;
static String member5;
static int member6 = 42;
}
メソッドが引数を取らず、高速で、値を返し、目に見える副作用を持たない場合は、getterメソッドを使用できます。
class Foo {
String get bar {
var result;
// ...
return result;
}
}
Gettersは引数を取ることはないので、(空の)パラメータリストのかっこは、上記のようにgetterを宣言するため、およびそれらを呼び出すために次のように省略されます:
main() {
var foo = new Foo();
print(foo.bar); // prints "bar"
}
setterメソッドもあります。これには1つの引数だけが必要です。
class Foo {
String _bar;
String get bar => _bar;
void set bar(String value) {
_bar = value;
}
}
setterを呼び出す構文は、変数代入と同じです。
main() {
var foo = new Foo();
foo.bar = "this is calling a setter method";
}
コンストラクタ
クラスコンストラクターはそのクラスと同じ名前を持たなければなりません。
Personクラスのコンストラクタを作成しましょう:
class Person {
String name;
String gender;
int age;
Person(this.name, this.gender, this.age);
}
上記の例は、以下の方法よりもコンストラクタを定義するための、よりシンプルで優れた方法です。これも可能です。
class Person {
String name;
String gender;
int age;
Person(String name, String gender, int age) {
this.name = name;
this.gender = gender;
this.age = age;
}
}
これでPersonのインスタンスを作成できます:
var alice = new Person('Alice', 'female', 21);
Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow