Search...
다트 언어 배우기7 - 클래스 oop
클래스 oop
클래스 명은 첫자는 무조건 대문자
인스턴스화
void main() {
Tree trees = new Tree(
'소나무',
100);
print(trees.getName);
trees.setName = '팽나무';
print(trees.getName);
}
class Tree {
String name;
int age;
Tree(this.name,this.age);
String get getName {
return this.name;
}
set setName(String name) {
this.name = name;
}
}
여기서 프라이빗을 선언하려면
_ 언더스코어를 넣게되면 된다.
class _Tree {
String name;
int age;
_Tree(this.name,this.age);
String get getName {
return this.name;
}
set setName(String name) {
this.name = name;
}
}
이렇게 하면 같은 파일 내부에서만 쓸수있다.
상속소스코드
void main() {
Tree trees = new Tree(
name: 'hello',
age : 100
);
trees.sayName();
Sonamoo teum = Sonamoo(
'튼튼이',
120
);
teum.sayName();
}
class Tree {
String name;
int age;
Tree({
required this.name,
required this.age
});
void sayName() {
print ("${this.name}");
}
}
class Sonamoo extends Tree {
Sonamoo(
String name,
int age
) : super(
name : name,
age : age
);
}
같은 자식 클래스 내부에 있는 메서드는 같은 다른 클래스에서 사용하지못한다.
예를들어서 sonamoo 클래스에서 나무 흔들기 메서드가 있다고 치자 그러면
tree 부모 클래스에서 적용해서 나무 클래스를 할당이 불가하다.
여기서 tree 클래스 를 파생한 오동나무 클래스에서 나무흔들기 메서드를 할당해서 쓴다해도 불가능하다.
꼭 부모 트리 클래스에서 나무 흔들기 메서드를 추가후에 상속 받은경우만 가능하다.