Flutter/Dart 문법

[Dart] Class의 getter와 setter

Chafle 2023. 3. 22. 12:55
반응형

getter는 데이터를 가져올 때

setter는 데이터를 설정할 때 사용

 

 

get

 

 

getter 선언

class내에서

반환타입 get 이름 {

return 반환인자

}

 

 

**() 을 사용하지 않는다. {}만 사용한다.

 

getter 사용

 

.을 이용하여 사용가능

 

 

ex

void main() {
  Hansoom hansoom1 =  Hansoom(
    '한숨팟',
    ['차', '밍', '똥', '똥철']
  );
  
  Hansoom hansoom2 = Hansoom(
  '한숨팟2',
    ['김', '정', '차', '오']
  );
  
  print(hansoom1.firstMemeber); // .을 이용하여 사용
}


class Hansoom {
   String name;
   List<String> members;

   Hansoom(this.name, this.members);
  Hansoom.fromList(List values)
      : this.members = values[0],
        this.name = values[1];
  
  //getter
  String get firstMemeber {
  return this.members[0];
  }
  
}

 

 

 


 

setter의 선언

class에 값을 세팅해주는 것이라고 쉽게 생각

 

class내에서

set 이름() {

class내에서 세팅할 

}

 

 

**() 을 사용한다.. 파라미터는 오직 1개만 받을 수 있다.

 

 

setter의 사용

 

=을 이용하여 세팅 가능

 

 

ex

void main() {
  Hansoom hansoom1 =  Hansoom(
    '한숨팟',
    ['차', '밍', '똥', '똥철']
  );
  
  Hansoom hansoom2 = Hansoom(
  '한숨팟2',
    ['김', '정', '차', '오']
  );

  
  //getter
  print(hansoom1.firstMember);
  
  //setter
  hansoom1.firstMember = '용'; // =으로 새로운 값으로 세팅
  print(hansoom1.members);
}


class Hansoom {
   String name;
   List<String> members;

   Hansoom(this.name, this.members);
  Hansoom.fromList(List values)
      : this.members = values[0],
        this.name = values[1];

  void sayHello() {
    print('안녕하세요 ${this.name}입니다.');
  }

  void introduce() {
    print('저희는 ${this.members} 입니다.');
  }
  
  
  //getter
  
  String get firstMember {
  return this.members[0];
  }
  
  
  //setter
  set firstMember(String name) {
    this.members[0] = name;
  }
  
  
}

실재로 firstMember의 값이 변경됨

 

 

 


 

Q1 함수를 사용할 수도 있는데 왜 getter를 사용하나

 

간단한 데이터의 가공할 때 getter를 사용

복잡한 로직일 때 함수를 사용

 

 

Q2 final 키워드를 사용할 때 setter를 사용하지 못하는데 언제 쓰나????

 

현대 프로그래밍 추세 상 setter는 잘 안쓰는 건 맞다.

 

 

반응형

'Flutter > Dart 문법' 카테고리의 다른 글

[Dart] 오버라이딩  (0) 2023.03.22
[Dart] 상속  (0) 2023.03.22
[Dart] 생성자(constructor)  (0) 2023.03.22
[Dart] 함수의 선언 (parameter에 관하여)  (0) 2023.03.21
[Dart] enum의 선언  (0) 2023.03.21