본문 바로가기

유니티

[유니티] c# 접근 제한자(private, public, protected, internal)

C#에서의 접근 제한자: private, public, protected, internal

C# 프로그래밍에서는 변수, 메서드, 클래스 등의 멤버들에 대한 접근 권한을 지정하기 위해 다양한 접근 제한자(access modifier)를 사용합니다. 이러한 접근 제한자들은 코드의 가시성과 보안을 조절하며, 객체 지향 프로그래밍(OOP)의 캡슐화와 상속 개념을 지원합니다.

1. private:
- 'private'는 정의한 클래스 내부에서만 접근 가능하도록 지정합니다. 다른 클래스나 외부에서는 접근할 수 없습니다.
- 클래스 내부의 내부 구현 세부 사항을 숨기고 캡슐화를 지원하는 데 사용됩니다.

2. public:
- 'public'은 어떤 클래스에서나 접근 가능하도록 지정합니다. 다른 클래스나 코드에서도 접근할 수 있습니다.
- 코드의 재사용성을 높여 모듈 간 상호 작용을 지원하는 데 사용됩니다.

3. protected:
- 'protected'는 정의한 클래스와 해당 클래스를 상속하는 하위 클래스에서만 접근 가능하도록 지정합니다.
- 주로 상속 관계에서 사용되며, 부모 클래스에서 하위 클래스에게 상속된 멤버를 제공하는 데 사용됩니다.

4. internal:
- 'internal'은 같은 프로젝트(같은 어셈블리) 내에서 접근 가능하도록 지정합니다.
- 같은 프로젝트 내에서 다른 클래스들 간에 정보를 공유하고 모듈화된 코드를 작성하는 데 유용합니다.

이러한 다양한 접근 제한자를 올바르게 활용하면 외부의 코드에 대한 접근을 제한하여 데이터를 보호하고 코드의 가독성과 유지 관리성을 향상시킬 수 있습니다. 이는 객체 지향 프로그래밍의 핵심 개념 중 하나인 캡슐화와 상속을 지원하는 데 중요한 역할을 합니다.

 

 

 

c#에서 접근 제한자를 명시적으로 지정하지 않으면 기본적으로 "private"으로 적용된다.

 

 

 

 


**캡슐화와 상속 개념:**

- **캡슐화(Encapsulation)**: 캡슐화는 객체 지향 프로그래밍(OOP)의 핵심 개념 중 하나로, 데이터와 해당 데이터를 조작하는 메서드(함수)를 하나의 단위로 묶는 것을 의미합니다. 이것은 데이터와 데이터를 다루는 코드를 캡슐로 묶어서 외부에서 직접적인 접근을 제한하고, 객체 내부에서 데이터를 관리하고 유지할 수 있도록 하는 것을 목표로 합니다. 캡슐화는 정보 은닉과 데이터 보호를 제공하며, 객체의 내부 상태를 숨기고 인터페이스를 제공하여 코드의 안정성을 높이고 모듈화를 지원합니다.

- **상속(Inheritance)**: 상속은 OOP에서 객체 간의 관계를 나타내는 개념 중 하나로, 하위 클래스(자식 클래스)가 상위 클래스(부모 클래스)의 속성과 메서드를 상속받는 것을 의미합니다. 상속을 사용하면 기존 클래스를 확장하여 새로운 클래스를 생성하고 코드 재사용성을 높일 수 있습니다. 상속은 객체의 계층 구조를 형성하며, 상위 클래스의 특성을 하위 클래스에서 재사용하거나 확장할 때 유용합니다.

이렇게 캡슐화와 상속은 객체 지향 프로그래밍에서 코드의 모듈화, 재사용성, 유지 관리성을 향상시키는 데 중요한 역할을 합니다.





2023.09.19 - [유니티] - [유니티] MonoBehaviour 메서드 라이프 사이클(Awake, OnEnable, Start, Update, FixedUpdate, LateUpdate, OnDisable, OnDestroy )

 

[유니티] MonoBehaviour 메서드 라이프 사이클(Awake, OnEnable, Start, Update, FixedUpdate, LateUpdate, OnDisable, OnDe

Unity에서 게임 오브젝트와 스크립트의 라이프사이클은 게임 실행과 관련된 이벤트 및 단계를 설명하는 중요한 개념입니다. 이 라이프사이클은 MonoBehaviour 클래스를 상속한 스크립트가 게임 오브

a-full-moon.tistory.com