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 |