Phantom Programming 팬텀 프로그래밍
  • C# 기초 Encapsulation이란?
    2024년 11월 19일 14시 11분 25초에 업로드 된 글입니다.
    작성자: Devrun
    반응형

    Encapsulation은 객체 지향 프로그래밍 OOP라는 프로그래밍 기법에서 핵심 원칙 중 하나이며, 데이터를 처리하는 Method를 그룹화하고 접근 및 수정 방법을 제어하는 과정이다. 이를 통해서 데이터의 무결성을 보장하고, 외부에서 복잡한 구현된 세부 사항을 숨길 수 있다.

     

    OOP의 4가지 핵심

    1. Abstraction (한국어: 추상화)

    - 관련 데이터와 행동을 논리적이고 ㅈ배사용 가능한 구조로 그룹화하는 과정

     

    2. Encapsulation(캡슐화)

    - 데이터에 대한 접근을 제어하고 클래스 외부에서 중요한 데이터가 손상되지 않도록 보호하는 과정

     

    3. Inheritance(상속)

    - 기존 클래스의 특성과 동작을 새로운 클래스에 상속하여 재사용

     

    4. Polymorphism(다형성)

    - 동일한 이름의 메서드가 서로 다른 동작을 수행

     

    캡슐화를 구현하는 방법

    1. 접근 제어자 사용 (public, private)

    C#에서는 접근 제어자를 사용하여 클래스 멤버(필드와 메서드)의 접근 수준을 제어합니다:

    • public: 클래스 외부에서 멤버에 접근 가능.
    • private: 클래스 내부에서만 멤버에 접근 가능.
    • protected: 클래스 내부 및 상속받은 클래스에서 접근 가능.
    • internal: 동일한 어셈블리 내에서 접근 가능.
    class Person
    {
        private string name; // 외부에서 접근 불가
        public int age;      // 외부에서 접근 가능
    
        public void SetName(string newName)
        {
            name = newName; // private 필드에 접근 가능
        }
    
        public string GetName()
        {
            return name; // private 필드에 접근 가능
        }
    }

     

    2. 프로퍼티와 자동 프로퍼티

    C#에서는 프로퍼티를 사용해 필드에 대한 접근을 제어할 수 있습니다:

    • get 접근자는 데이터를 읽을 수 있게 허용.
    • set 접근자는 데이터를 수정할 수 있게 허용.
    class Person
    {
        private int age;
    
        public int Age
        {
            get { return age; }
            set
            {
                if (value > 0)
                {
                    age = value; // 양수만 설정 가능
                }
            }
        }
    }

     

    3. static 멤버와 클래스

    • static 멤버: 클래스 자체에 속하며, 모든 인스턴스에서 공유.
      • 예: Math 클래스의 Math.PI.
    • static 클래스: 인스턴스를 만들 수 없고, 정적 멤버만 포함.
    class MathUtilities
    {
        public static double Add(double a, double b)
        {
            return a + b;
        }
    }
    반응형
    댓글