수색…


수업 만들기

다음과 같이 클래스를 생성 할 수 있습니다.

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 값을가집니다.

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 메소드도 있습니다.

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