본문 바로가기
TIL

dart4 - class2

by 은지:) 2023. 12. 10.
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

댓글