flutter에서 사용하는 dart 언어의 클래스 알아보기
오늘도 flutter에서 사용하는 dart언어를 알아보려 합니다.
이번 포스팅에서는 클래스에 대해서 작성합니다.
클래스
모든 객체는 클래스의 인스턴스이며, 모든 클래스는 오브젝트에서 파생됩니다.
class test{
var a;
var b;
var c;
var d;
static const e = "";
test(a,b,c){
this.a = a;
this.b = b;
this.c = c;
}
printValue(){
print(this.a);
print(this.b);
print(this.c);
}
adder(test t){
return t.a + t.b + t.c;
}
test.named(){
print("identifier");
}
test.another(a,b,c):this(a,b,c);
}
void main() {
var tmp = test(1,2,3);
tmp.printValue();
tmp.a = 5;
tmp.printValue();
tmp?.d = 1;
객체를 생성해서 변수 필드에 접근하면 값을 대입할 수 있으며, 물음표를 이용하여 not-null이면 값을 넣게 할 수도 있습니다.
print(tmp.adder(tmp));
클래스로 객체를 생성해서 메소드를 사용할 수 있습니다.
test.named();
생성자에 이름을 부여해서 식별할 수 있습니다.
var tmp5 = test.another(10,10,10);
print(tmp5.a);
}
자기 클래스의 생성자로 넘겨줄 수 있습니다.
class ImmutableTest {
final num a, b, c;
const ImmutableTest(this.a, this.b,this.c);
}
var tmp1 = const ImmutableTest(5,5,5);
var tmp2 = const ImmutableTest(5,5,5);
print(tmp1 == tmp2);
var tmp3 = test(5,5,5);
var tmp4 = const ImmutableTest(5,5,5);
print(tmp3 != tmp4);
상수 생성자를 이용하여 동일한 인자를 주면 서로 같다고 판별합니다.
class superClass {
String a;
superClass.method(Map data) {
print('super');
}
}
class subClass extends superClass {
subClass.method(Map data) : super.method(data) {
print('sub');
}
}
subClass.method({});
클래스 상속을 할 수 있습니다.
abstract class abstractClass{
void m(){}
}
class implementClass implements abstractClass{
@override
m(){
}
}
추상 클래스를 생성해서 오버라이드로 구현할 수 있습니다.
추가로 Mixin라는 개념도 있는데, 이전에 일반적으로 추상 클래스를 사용한 이유와 같습니다.
enum Color { red, green, blue }
enum을 사용할 수 있습니다.
Written on December 31, 2018