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 로 클래스를 호출하여 메서드를 불러온다.

+ Recent posts