728x90
반응형
getter
setter
void main() {
// getter setter
Idol rm = new Idol(
name : "rm",
group : 'bts'
);
print(rm.name);
print(rm._name);
rm.name = "은지";
print(rm.name);
}
class Idol {
// private variable (_name, _ 로 표기함)
// 자바 같은 전통 oop들은 클래스 안에서만
// private 변수들을 가져올 수 있음
// 다트는 같은 파일에 작성이 되어야
// private을 가져올 수 있음$
String _name;
String _group;
Idol({
String name = "eunji",
String group = "family"
}) : this._name = name, this._group = group;
void sayName(){
print('저는 $_name 입니다');
}
String get name {
return this._name;
}
set name(String name) {
this._name = name;
}
}
getter setter 사용법
그냥 업데이트 쳐주는 함수 같은 거임
그냥 함수로 적어도 무방하지만
getter setter 쓰는 이유는 뉘앙스라고함
가독성 차이인듯
class Idol {
String name;
String group;
Idol({
String name = "eunji",
String group = "family"
}) : this.name = name, this.group = group;
void sayName(){
print('저는 ${this.name} 입니다');
}
}
class BoyGroup extends Idol{
BoyGroup(
String name,
String group
) : super(
name : name,
group : group
);
//super는 부모 생성자 말하는 거임
}
이럴 때
boyGroup(자식)은 부모에 있는 함수 가져다 쓸 수 있음
반대는 안 됨
같은 부모를 자식도 당근 안 됨
============================================
오버라이딩
class Idol {
String name;
String group;
Idol({
String name = "eunji",
String group = "family"
}) : this.name = name, this.group = group;
void sayName(){
print('저는 ${this.name} 입니다');
}
}
class BoyGroup extends Idol {
BoyGroup(String name, String group) : super(name: name, group: group);
// decorator
@override
void sayName() {
super.name = "happy"; // 수정된 부분
print('저는 ${super.name} 입니다'); // 수정된 부분
}
부모 메서드 덮어버리기
=> overide 라는 decorator 함수를 사용하면 됨
====================================
static
이것이 static의 힘
static 이라 $building 이라 표기함
728x90
반응형
'TIL' 카테고리의 다른 글
싱글톤 (1) | 2024.01.28 |
---|---|
커링 (1) | 2023.12.26 |
dart4 - class1 (0) | 2023.12.10 |
const test ()=>()=>{} (0) | 2023.12.07 |
dart 3 <= enum, 타입 관련 이야기라 재밌음 (1) | 2023.11.29 |
댓글