class Product {
String name;
int price;
Product(this.name, this.price);
}
class ShoppingMall {
List<Product> productList = [];
void printProducts() {
for (Product p in productList) {
print('${p.name} / ${p.price} 원');
}
}
}
void main() {
ShoppingMall mall = ShoppingMall();
Map<String, int> products = {
'셔츠': 10000,
'바지': 20000,
'치마': 30000,
'양말': 1000,
'신발': 50000,
};
List<String> keys = products.keys.toList();
List<int> values = products.values.toList();
for (var i = 0; i < products.length; i++) {
Product product = Product(keys[i], values[i]);
mall.productList.add(product);
}
mall.printProducts();
}
앱개발종합반에서 진행한 개인과제 중 일부 코드.
다양한 메서드를 사용했지만 마지막 4개의 메서드를 만드는 것보다 첫 메서드를 제대로 동작하도록 하는 것이 훨씬 오래 걸렸다. 메서드의 호출 때문이다.
메서드
객체가 특정한 행동을 할 수 있게 해주는 함수의 일종.
class ShoppingMall {
List<Product> productList = [];
void printProducts() {
for (Product p in productList) {
print('${p.name} / ${p.price} 원');
}
}
}
printProducts() 가 메서드이다.
클래스 ShoppingMall내에 선언된 것을 볼 수 있다.
메서드는 클래스 내부에 존재하기 때문에 클래스에 의존한다.
따라서 메서드의 호출은 함수와 다른 방식으로 작동한다.
void main() {
ShoppingMall mall = ShoppingMall();
Map<String, int> products = {
'셔츠': 10000,
'바지': 20000,
'치마': 30000,
'양말': 1000,
'신발': 50000,
};
List<String> keys = products.keys.toList();
List<int> values = products.values.toList();
for (var i = 0; i < products.length; i++) {
Product product = Product(keys[i], values[i]);
mall.productList.add(product);
}
mall.printProducts();
}
main() 내부에서 printProducts() 를 호출하고 있다.
ShoppingMall mall = ShoppingMall();
Class ShoppingMall 내부의 메서드이므로 ShoppingMall 객체인 mall을 생성한다.
mall.printProducts();
mall 로 클래스를 호출하여 메서드를 불러온다.
'Dart' 카테고리의 다른 글
[Dart] 비동기 프로그래밍 - Future (0) | 2025.03.14 |
---|---|
[Dart] 콘솔 쇼핑몰 트러블슈팅 (0) | 2025.03.13 |
[Dart] List, Set 개념 및 차이점 (0) | 2025.03.11 |
[Dart] map과 for문을 활용한 class 선언 및 리스트화 (0) | 2025.03.10 |
1주 1일차 - Dart 문법 (0) | 2025.03.07 |