C#/실습으로 다지는 C#

[013] C# 구성(Composition) 관계 실습 - 쇼핑 센터, 상품

언제나휴일 2020. 4. 8. 21:45
반응형

소스 코드

Eye.cs

using System;

namespace 구성_관계_실습
{
    class Eye
    {
        double sight;
        bool opened;
        public bool Opened
        {
            get
            {
                return opened;
            }
        }
        public Eye(double sight)
        {
            this.sight = sight;
        }
        public void Open()
        {
            Console.WriteLine("앞이 보이네. 시력:{0}", sight);
            opened = true;
        }
        public void Close()
        {
            Console.WriteLine("앞이 컴컴");
            opened = false;
        }
        public void See()
        {
            if(opened)
            {
                Console.WriteLine("앞이 잘 보여");
            }
            else
            {
                Console.WriteLine("앞이 안 보여");
            }
        }
    }
}

Man.cs

using System;

namespace 구성_관계_실습
{
    class Man
    {
        Eye[] eyes = new Eye[2];
        string name;
        public Man(string name)
        {
            this.name = name;
            eyes[0] = new Eye(2.0);
            eyes[1] = new Eye(2.0);
        }
        public void Walk()
        {
            if(eyes[0].Opened==false)
            {
                eyes[0].Open();
            }
            if (eyes[1].Opened == false)
            {
                eyes[1].Open();
            }
            Console.WriteLine("Go~");
        }
        public void Sleep()
        {
            if (eyes[0].Opened)
            {
                eyes[0].Close();
            }
            if (eyes[1].Opened)
            {
                eyes[1].Close();
            }
            Console.WriteLine("쿨~쿨~");
        }
        public override string ToString()
        {
            return name;
        }

    }
}

Program.cs

//http://ehpub.co.kr
//실습으로 다지는 C#
//구성 관계 실습

namespace 구성_관계_실습
{
    class Program
    {
        static void Main(string[] args)
        {
            Man man = new Man("홍길동");
            man.Walk();
            man.Sleep();
            man.Walk();
        }
    }
}
반응형