본문 바로가기

Programming/Flutter&Dart

Dart 기초 문법 (4)

class

 

void main(){
// class
// OOP - Object Oriented Programming
// 객체지향 프로그래밍
  
  // 우선 class를 변수화 해야 함.
  // Instatiation = 인스턴스화
  //Idol redVelvet = new Idol();
  
  
  //redVelvet.sayName();
  
  //print(redVelvet.name);
  
  print('---------------------------');
  
  Idol seulgi = new Idol(
    '슬기',
    '레드벨벳'
  );
  
  seulgi.sayName();
  print(seulgi.nameA);
  print(seulgi.group);
  
  print('---------------------------');
  
  // map을 활용한 constructor 생성
  Idol rm = new Idol.fromMap({
    'nameA' : 'RM',
    'group' : 'BTS',
  });
  
  rm.sayName();
  print(rm.nameA);
  print(rm.group);
  
}

// class 이름은 항상 대문자로 시작.
class Idol {
  
  //String name = '레드벨벳';
  
  // final로 선언하지 않으면 값이 변경될 수 있음
  // 보통 final로 선언해주는 것이 일반적.
  final String nameA;
  final String group;
  
  // constructor 생성 = 생성자 생성
  // 외부에서 가져온 nameA와 group이 위 변수에 저장됨.
  Idol(String nameA,String group)  
  	 : this.nameA = nameA,
       this.group = group;
  
  Idol.fromMap(
    Map input,
  )  :this.nameA = input['nameA'],
      this.group = input['group'];
  
  // this는 현재 class를 나타낸다.
  void sayName(){
    print('제 이름은 ${this.nameA}입니다.');
  }
  
}

 

Object(객체) : 변수와 함수 등이 모여있는 코드 뭉치.

- RPG 게임에 비유하면 User가 생성하는 캐릭터라고 할 수 있다. 캐릭터에는 Hp, Mp, 이름 등 다양한 요소가 담겨있다.

 

Class(클래스) : 객체를 만들기 위한 설계도.

- Instance Variables)

 생성될 객체에 담겨야 할 변수들. 위 예제에서 'nameA', 'group' 부분이 되겠다.

 

- Constructor(생성자))

 생성할 객체의 변수 부분에 어떤 데이터를 넣을지 정의하는 부분이다. 

 

- Methods)

 클래스 안에서 동작해야 할 함수들이다. 쉽게 생각해 함수이지만 클래스 안에 소속해 이름이 바뀌었다고 생각하자.

 

- Instance(인스턴스))

 클래스를 통해 만들어진 객체 한 개를 인스턴스라 한다.

 

'Programming > Flutter&Dart' 카테고리의 다른 글

Dart 기초 문법 (3)  (0) 2022.08.04
Dart 기초 문법 정리 (2)  (0) 2022.08.04
Dart 기초 문법 정리 (1)  (0) 2022.08.03