0316 배열 복습

2021. 3. 16. 11:33C#/수업내용

public class Fruits
    {
        private string name;
        public Fruits(string name) {
            this.name = name;
        }

        public string GetName() {
            return this.name;
        }
    }​
public class App
    {
        public App() 
        {
            //Item 배열 변수 선언
            Item[] items;
            //배열 인스턴스화 (배열 생성)
            items = new Item[3];
            //Item 객체 생성 //ItemData.cs
            
            //ItemData 생성자
            ItemData data = new ItemData("장검", 20, eItemType.WEAPON);
            Item item = new Item(data);

            //배열에 요소에 값 할당
            items[0] = item;
            //배열의 요소 출력
            foreach (Item element in items)
            {
                Console.WriteLine("{0}", item.data.name);
            }
        }
    }
namespace ConsoleApp2
{
    public enum eItemType
    {
        WEAPON,
        ARMOR,
        ACCESSORY
    }
    public class ItemData
    {
        public string name;
        public int damage;
        public eItemType itemType;

        //기본생성자
        public ItemData() 
        { }
        //매개변수가 있는 생성자
        //overloading
        public ItemData(string name, int damage, eItemType itemType)
        {
            this.name=name;
            this.damage = damage;
            this.itemType = itemType;
        }
    }
}
amespace ConsoleApp2
{
    public class Item
    {
        public ItemData data;
        public Item() 
        {
        }
        public Item(ItemData data)
        {
            this.data = data;
        }
    }
}

 

객체 생성

배열선언하고 생성

배열에 요소 추가

배열에 특정 요소 출력

배열에 모든 요소 출력

배열의 요소를 검색

배열의 요소를 제거

 

public class App
    {
        //생성자 
        public App() {
            //Fruits배열변수 선언 
            Fruits[] arrFruits;

            //배열 인스턴스화 
            arrFruits = new Fruits[5];

            //Fruits 객체 생성 
            Fruits fruits1 = new Fruits("사과");
            Fruits fruits2 = new Fruits("복숭아");
            Fruits fruits3 = new Fruits("수박");
            Fruits fruits4 = new Fruits("귤");

            //배열 요소에 추가 
            arrFruits[0] = fruits1;
            arrFruits[1] = fruits2;
            arrFruits[2] = fruits3;
            arrFruits[3] = fruits4;

            //배열 요소를 출력 
            foreach (Fruits fruits in arrFruits) {
                if (fruits != null) {
                    Console.WriteLine(fruits.GetName());
                }
            }

            //배열요소에서 이름이 "사과"인 Fruits객체를 검색 
            Fruits foundFruits = null;
            string searchName = "사과";
            foreach (Fruits fruits in arrFruits)
            {
                if (fruits != null && fruits.GetName() == searchName) {
                    foundFruits = fruits;
                    break;
                }
            }
            if (foundFruits != null)
            {
                Console.WriteLine("{0}를 찾았습니다.", foundFruits.GetName());
            }
            else 
            {
                Console.WriteLine("{0}를 못찾았습니다.", searchName);
            }

            //배열요소에서 이름이 "복숭아"인 Fruits객체를 삭제 
            for (int i = 0; i < arrFruits.Length; i++) {
                var fruits = arrFruits[i];
                if (fruits != null && fruits.GetName() == "복숭아")
                {
                    Console.WriteLine("{0}를 찾았습니다.", fruits.GetName());
                    arrFruits[i] = null;
                    break;
                }
            }

            Console.WriteLine("*************************************");

            foreach (Fruits fruits in arrFruits)
            {
                if (fruits == null)
                {
                    Console.WriteLine("[empty]");
                }
                else 
                {
                    Console.WriteLine(fruits.GetName());
                }
            }
        }

 

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

0316 Collection> Dictionary  (0) 2021.03.16
0316 ArrayList/제너릭 클래스  (0) 2021.03.16
0312 상속 inheritance  (0) 2021.03.12
0312 생성자  (0) 2021.03.12
0312 메서드 오버로딩  (0) 2021.03.12