OOP (Object Oriented Programming)
Class 정의는 설계도 작성
Instance 는 설계도를 사용하여 결과물을 만들어 내는것
void main() {
Idol blackPink = Idol('블랙핑크', ['지수', '제니', '리사', '로제']);
print(blackPink.name);
print(blackPink.members);
blackPink.sayHello();
blackPink.introduce();
Idol bts = Idol('BTS', ['RM', '진', '슈가', '제이홉', '지민', '뷔', '정국']);
print(bts.name);
print(bts.members);
bts.sayHello();
bts.introduce();
}
// Idol class 선언
// name (이름) - 변수
// members (멤버) - 변수
// sayHello (인사) - 함수
// introduce(소개) - 함수
// constructor(생성자)
class Idol {
String name;
List<String> members;
Idol(String name, List<String> members)
: this.name = name,
this.members = members;
void sayHello() {
print('안녕하세요. ${this.name}입니다.');
}
void introduce() {
print('저희 멤버는 ${this.members}가 있습니다.');
}
}
class를 아래와 같이 간결하게 작성할 수 있다.
class Idol {
String name;
List<String> members;
Idol(this.name, this,members);
void sayHello() {
print('안녕하세요. ${this.name}입니다.');
}
void introduce() {
print('저희 멤버는 ${this.members}가 있습니다.');
}
}
아래와 같이 named 생성자를 사용하여 작성할 수 있다.
void main() {
Idol aespa = Idol.fromList([
['카리나', '윈터', '지젤', '닝닝'],
'에스파'
]);
print(aespa.name);
print(aespa.members);
aespa.sayHello();
aespa.introduce();
}
// Idol class 선언
// name (이름) - 변수
// members (멤버) - 변수
// sayHello (인사) - 함수
// introduce(소개) - 함수
// constructor (생성자)
class Idol {
String name;
List<String> members;
Idol.fromList(List values)
: this.members = values[0],
this.name = values[1];
void sayHello() {
print('안녕하세요. ${this.name}입니다.');
}
void introduce() {
print('저희 멤버는 ${this.members}가 있습니다.');
}
}
immutable 프로그래밍
void main() {
Idol aespa = const Idol('에스파', ['카리나', '윈터', '지젤', '닝닝']);
//const를 사용할 경우 값이 같으면 같은 인스턴스가 된다.
Idol aespa2 = const Idol('에스파', ['카리나', '윈터', '지젤', '닝닝']);
print(aespa.name);
print(aespa.members);
aespa.sayHello();
aespa.introduce();
print(aespa == aespa2); // const를 사용하면 true 가 출력 된다.
}
// immutable 프로그래밍
class Idol {
final String name;
final List<String> members;
const Idol(this.name, this.members);
void sayHello() {
print('안녕하세요. ${this.name}입니다.');
}
void introduce() {
print('저희 멤버는 ${this.members}가 있습니다.');
}
}
4-1. Asynchronous Programming (비동기 프로그래밍) (0) | 2023.09.07 |
---|---|
3. Functional Programming (함수형 프로그래밍) (0) | 2023.09.05 |
2. 객체지향 프로그래밍 2 (0) | 2023.09.05 |
1. 기본기 2 (0) | 2023.08.31 |
1. 기본기 1 (0) | 2023.08.30 |