ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 2020-04-16 [1차원배열 활용]
    C#/수업내용 2020. 4. 16. 18:26
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
     
    namespace Study_010
    {
        class APP1
        {
            public APP1()
            {
                //string[] arrItemNames = new string[3];
                //arrItemNames[0] = "장검";
                //arrItemNames[1] = "단검";
                //arrItemNames[2] = "대검";
                ////for (int i = 0; i < arrItemNames.Length; i++)
                ////{
                ////    Console.WriteLine(arrItemNames[i]);
                ////}
     
                //Item[] arrItems = new Item[3];
                ////arrItems[0] = new Item("장검");
                ////arrItems[1] = new Item("단검");
                ////arrItems[2] = new Item("대검");
     
                ////for (int i=0; i< arrItems.Length; i++)
                ////{
                ////    Console.WriteLine(arrItems[i].name);
                ////}
     
                //for (int i = 0; i < arrItems.Length; i++)
                //{
                //    arrItems[i] = new Item(arrItemNames[i]);
                //    Console.WriteLine(arrItems[i].name);
                //}
     
                //Inventory inventory = new Inventory();
                //Item[] Items = new Item[3];
                //Items[0] = new Item("장검");
                //Items[1] = new Item("단검");
                //Items[2] = new Item("활");
     
                ////inventory.AddItem(Items[0]); // 대개 객체 하나씩은 이렇게 하면 되지만 
     
                ////inventory.AddItes(Items); // >> 배열 그 전체를 다 전달해보고 싶음 
               
     
     
     
     
                // 인벤 객체 생성 
                Inventory inventory = new Inventory();
     
                //배열 객체 생성
                Item[] arrItems = new Item[3];
                //아이템 객체 생성 
                Item item = new Item("장검");
                Item item1 = new Item("단검");
                Item item2 = new Item("도끼");
     
                //배열 객체에 아이템 객체 할당 
                arrItems[0= item;
                arrItems[1= item1;
                arrItems[2= item2;
     
                //인벤객체의 배열객체의 0번 인덱스가 아이템 객체 할당 
                //inventory.arritems[0] = item;
                 // >> 
     
                //인벤 객체의 배열에 단일 아이템 추가 메소드 
                //inventory.AddItem(item);
                //inventory.AddItem(item1);
                //inventory.AddItem(item2);
     
                //인벤 객체의 배열객체를 전달 
                inventory.AddItems(arrItems);
     
     
     
                Item[] invenItems = inventory.GetItems();
                // 새로운 애였으면 좋겟음 
     
     
                // 반환 받은 배열의 첫번째 요소의 name 값 변경 
                invenItems[0].name = "대검";
     
                Console.WriteLine(invenItems[0].name);//대검 
                Console.WriteLine(item.name); //장검
                Console.WriteLine(arrItems[0].name); //장검
     
            }
        }
    }
    =====================================================================================================
     
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
     
    namespace Study_010
    {
        class Inventory
        {
            public Item[] arritems;
            int arrIndex = 0// 아래에서 안쓴 이유 : 인벤토리 객체가 소멸될때까지 값을 저장하고 있음 
                        // 아래 메소드에서 정의했을 경우 메소드가 끝날때마다 값이 되돌아감 
                        // 배열 인덱스를 선언한 변수 
            public Inventory()
            {
                // Item 값 3개를 할당할수있는 배열 객체 생성 
                this.arritems = new Item[3];
     
                Console.WriteLine("인벤토리 생성");
            }
     
            //단일 아이템을 전달 받아 배열의 요소에 할당 
            public void AddItem(Item item)
            {
                //배열 객체의 N 인덱스에 매개변수 item 값을 할당
                this.arritems[arrIndex++= item;
     
                if (arrIndex> 3)
                {
                    Console.WriteLine("어디상 담기 불가능");
                }
     
            }
     
            //배열객체를 전달바아 인벤이 가지고있는 배열에 요소를 옮겨 담음 
            public void AddItems(Item[] arritems)
            {
                for(int i = 0; i < arritems.Length; i++)
                {
                    Console.WriteLine("인벤클라스 안 : {0}, 전달받은 것 :  {1}"this.arritems[i] , arritems[i]);
                    this.arritems[i] = arritems[i];
                }
     
                Console.WriteLine();
                for (int i = 0; i < arritems.Length; i++)
                {
                    Console.WriteLine("인벤클라스 안 : {0}, 전달받은 것 :  {1}"this.arritems[i], arritems[i]);
                    this.arritems[i] = arritems[i];
                }
     
     
            }
     
            //인벤 객체의 배열 객체 반환 
     
            public Item[] GetItems()
            {
                //새로운 배열 객체 생성 
                Item[] newArrItems = new Item[this.arritems.Length];
                //배열의 각 요소를 새롭게 생성해서 (새로운 아이템 객체를 생성하여)
                //새로운 배열 객체에 할당 
                for (int i = 0; i < this.arritems.Length; i++)
                {
                    Item item = new Item(this.arritems[i].name);
                    newArrItems[i] = item;
                }
     
                //새로운 배열객체를 반환 
                return newArrItems;
            }
     
     
        }
    }
    ============================================================================================================
     
     
    http://colorscripter.com/info#e" target="_blank" style="color:#e5e5e5text-decoration:none">Colored by Color Scripter

     

     

     

    'C# > 수업내용' 카테고리의 다른 글

    2020-04-20 [1차원 배열 활용]  (0) 2020.04.20
    2020-04-17 [1차원배열 ]  (0) 2020.04.17
    2020-04-14 [Class 선언 및 인스턴스, 변수선언/리턴의 이해]  (0) 2020.04.14
    2020-04-13  (0) 2020.04.13
    2020-04-09 [작성 및 활용 ]  (0) 2020.04.09
Designed by Tistory.