반응형
접근 제한자(Access Modifier)란 무엇인가?
우리나라에서는 접근 제한자 또는 접근 한정자라고 부르는 거 같다. 정리해 보자면 접근 제한자는 클래스, 필드, 메소드 및 속성에 대한 접근 수준을 설정하는 데 사용된다. 아래 예시를 살펴보자.
예시1:
public string color;
예시1
에서 public을 접근 제한자라고 한다. 가장 앞
C#의 접근 제한자
접근 제한자 | 설명 |
---|---|
public | 외부 클래스를 포함한 모든 클래스에서 접근을 허용함. |
private | 동일한 클래스 내에서만 접근을 허용함. |
protected | 동일한 클래스 내에서 또는 해당 클래스에서 상속된 클래스에서 접근을 허용함. |
internal | 자체 어셈블리 내에서만 접근을 허용함. 다른 어셈블리에서는 없음. |
private protected
와 protected internal
처럼 조합하여 사용하는 경우도 있다. protected
와 internal
에 대해서는 나도 사용해 본 적이 없다. 추후에 다루게 된다면 다시 한번 정리해 보도록 하겠다.
Private Modifier(비공개 제한자)
private
를 사용하여 필드를 선언하면 동일한 클래스 내에서만 접근할 수 있다.
예시2:
class Car
{
private string model = "Mustang";
static void Main(string[] args)
{
Car myObj = new Car();
Console.WriteLine(myObj.model);
}
}
// 출력 : Mustang
예시3:
class Car
{
private string model = "Mustang";
}
class Program
{
static void Main(string[] args)
{
Car myObj = new Car();
Console.WriteLine(myObj.model);
}
}
model
변수는 Car
클래스 내부에서 private
로 선언되었다. 그런데 Program
클래스에서 접근을 하려고 하는 경우 다음과 같은 에러가 발생한다.
접근 제한자를 사용하여 클래스와 멤버의 접근을 제어함으로써 코드의 안정성을 높일 수 있다.
반응형
'게임 & 게임개발 > C# 기초' 카테고리의 다른 글
[C#기초] 상속(Inheritance)과 다형성(Polymorphism) (0) | 2024.04.24 |
---|---|
[C#기초] 프로퍼티(Property)와 Get, Set 메서드 💊 (0) | 2024.04.23 |
[C#기초] 클래스 생성자(Class Constructor)란 무엇일까? (0) | 2024.04.21 |
객체지향 프로그래밍(Object Oriented Programming)이란 무엇일까? (3) | 2024.04.19 |
클래스와 객체, 클래스 멤버 (2) | 2024.04.19 |