한국 /프랑스 웹툰 리뷰 2021. 7. 12. 15:36
728x90

 

private + public 조합

using System;

namespace Csharp
{    

    class Knight
    {
        //접근한정자 : public / protected / private

        //private
        private int hp;
        
        //public
        public void SetHP(int hp)
        {
            this.hp = hp;
        }

    }
    class Program
    {
        static void Main(string[] args)
        {
            Knight knight = new Knight();

            knight.SetHP(100);
        }
    }
}

hp값에 private(변수)와 public(함수)의 동시 조합을 쓰는 이유는 뭘까?

 

굳이 hp 하나 바꾸자고 이렇게 복잡하게 하는 이유는

 

hp를 하꾸는 코드가 여기저기 흩어져 있을 때 찾을 수 없다

 

 

그치만 private + public 조합으로 이렇게 코드를 짜면

 

중단점을 찍고 F5를 눌렀을 때

 

hp가 들어오는 곳이 어디있는지 바로 찾을 수 있다.

 

 

protected

using System;

namespace Csharp
{    

    class Knight
    {
        //접근한정자 : public / protected / private
        
        protected int hp;
        
    }

    class SuperKnight : Knight
    {
        void Test()
        {
            //private은 안되는데 protected는 상속받으면 됨 (protected : 외부는 차단, 자식들에게만 오픈)
            hp = 10;
        }
    }

    class Program
    {
        static void Main(string[] args)
        {
            Knight knight = new Knight();
        }
    }
}
728x90