IT News/Flutter & Dart

Dart 클래스를 사용한 리스트 구현

skyLove1982 2021. 9. 6. 16:04
반응형

class Item{
  String name='';
  int damage=0;
  int price=0;
  
  Item();
  Item.setData(String name, int price, {int damage=0}){
    this.name = name;
    this.damage = damage;
    this.price = price;
  }
  
  void showInfo(){
    print("name: $name, damage: $damage, price: $price");    
  }
  
}

class Sword extends Item{
  @override
  int damage=10;
  Sword();
  Sword.setData(String name, int price, int damage) : super.setData(name, price, damage:damage);
}

class Shield extends Item{
  int damage = 0;
  Shield();
  Shield.setData(String name, int price, int damage) : super.setData(name, price, damage:damage);
}


class Bag{
  
  List<Item> item = [];
    
  Bag();
  
  void addItem(Item item){
    this.item.add(item);    
  }
  
  void removeItem(Item item){
    this.item.remove(item);
  }
  
  void showInfo(){
    print(item);
    
    item.forEach((e){
        //print(e.name);
        e.showInfo();
    });
  }
  
}


void main(){
  
  Sword knif = new Sword.setData("knif", 100, 10);
  Shield shield = new Shield.setData("wooden shield", 150, 0);
  //shield.showInfo();
  //knif.showInfo();

  Bag bag = new Bag();
  bag.addItem(knif);
  bag.addItem(shield);
  bag.removeItem(knif);
  bag.showInfo();
  
}

반응형