: 객체의 데이터와 기능이 정의되어 있는 설계도
인스턴스를 초기화하는 데에 필요한 요소들이다.
class
를 붙이면 된다.class ClassName
클래스 밖에서 클래스 인스턴스를 만들 때는 new
키워드를 사용한다.
ex) var instance = new ClassName();
class member에 접근하려면 만들어진 클래스 인스턴스를 사용한다.
ex) instance.member;
void main() {
var person = Person('John Doe', 30);
person.printInfo();
}
class Person {
String name;
int age;
Person(this.name, this.age);
void printInfo() {
print('$name is $age');
}
}
// output: John Doe is 30 years old
abstract 키워드로 정의되는 클래스로, 자식 클래스에서 추상클래스의 메소드가 구현된다. 추상 클래스에서는 변수를 지정할 수 있고 메소드는 선언만 가능하다. abstract
키워드로 정의된다.
템플릿으로 이해하면 편하다. 클래스 안에는 메소드 선언만 가능하며, 변수를 정의할 수 없다. 인터페이스를 구현하는 클래스에서 변수와 메소드 구현이 이루어진다. interface
키워드로 정의된다.
다중 상속을 통해 다른 클래스의 기능을 추가할 수 있다. with
키워드를 사용해 정의된다.
: 데이터 혹은 기능이 정의되어 있으며, 프로그램 상에서 다룰 수 있는것