본문 바로가기
개발일지/임시카테고리

dart(다트) - class(클래스) 기본 1

by 다니엘의 개발 이야기 2025. 3. 24.
320x100
void main() {
  Idol blackPink = Idol(
    'blackpink',
    ['jisu', 'jenny', 'lisa', 'rose']
  );
  
  print(blackPink.name);
  blackPink.sayHello();
  blackPink.introduce();
  print('');
  
  Idol bts = Idol(
  'BTS',
    ['RM', 'jin', 'sugar', 'J-hope', 'jimin', 'jung-kuk']
  );
  
  print(bts.name);
  print(bts.members);
  bts.sayHello();
  bts.introduce();
  
  print(blackPink.firstMember);
  
  blackPink.firstMember = '햄스터';
  bts.firstMember = '햄토리';
  
  print(blackPink.firstMember);
  print(bts.firstMember);
    
}


// name- 변수
// members - 변수
// sayHello - 함수
// introduce - 함수

// constructor (생성자)

// getter / setter
// 데이터 가져올때, 데이터를 설정할때
class Idol {
  // 만약 사용과정에서 name 지정된 것에 변동이 없게 해주려면 "fianl"을 사용하면 된다.
  String name;
  List<String> members;
  
  // 파라미터 입력 첫번째 방법
//   Idol(String name, List<String> members)
//     : this.name = name,
//     this.members = members;
  
  // 파라미터 입력 두번재 방법
  // 그저 class Idol을 처음 선언할때 사용해줬던 String name,
  // List를 가져와서 사용한다.
  Idol(this.name, this.members);
  
  // 파라미터 입력 세번째 방법
  // 이렇게 해주고 결국은 파라미터에 리스트 형태로 입력을 넣어준다.
//   Idol.fromList(List values)
//     : this.members = values[0],
//       this.name = values[1];
  
  void sayHello() {
    print('hello we are ${this.name}');
  }
  
  void introduce() {
    print('our members ${this.members}');
  }
  
  // getter
  // 타입을 붙이는 것이 의무는 아니지만, 붙여줘서 무슨 값이 나오는지 알수있다.
  String get firstMember {
    return this.members[0];
  }
  
  // setter
  // setter는 무조건 파라미터에 1개의 값이 들어간다.
  set firstMember(String name) {
    this.members[0] = name;
  }
}
300x250