C#/클래스와 객체지향
C# 클래스와 객체지향 - 06. 접근 제한자
tita
2024. 5. 28. 15:25
C#은 접근 제한자가 굉장히 많습니다. 일단 대표적인 접근자에 대해서만 알아보겠습니다.
- private
- public
[private 접근 제한자]
우선 private 접근 제한자에 대해 알아보겠습니다. 접근 제한자를 입력하지 않았을 경우 자동으로 private 접근 제한자가 설정됩니다.
static void Main(string[] args)
{
}
Main 함수는 접근 제한자를 설정하지 않았으므로 private 접근 제한자가 설정된 메서드입니다.
private 접근 제한자가 설정된 메서드를 외부나 내부 클래스에서 접근하는 예제를 살펴보겠습니다.
class Test_out
{
// Program.Main 은 private 이기 때문에 Program 클래스 외부에서는 접근할 수 없습니다.
// 따라서 이 코드를 실행하면 에러가 발생합니다.
public void TestMethod_out()
{
Program.Main(new string[] { "" });
}
}
class Program
{
class Test_in
{
// Program 클래스 내부에 Test_in 클래스가 있기 때문에 접근이 가능합니다.
public void TestMethod_in()
{
Program.Main(new string[] { "" });
}
}
// Program 클래스 내부에서 Main 을 호출했기 때문에 접근이 가능합니다.
public void TestMethod()
{
Program.Main(new string[] { "" });
}
static void Main(string[] args)
{
}
}
[public 접근 제한자]
다른 클래스에서 Main() 메서드를 호출하기 위해서는 접근 제한자 자리에 public 을 붙여서 공개 상태로 만들어주면 됩니다. 접근 제한자를 제외하고는 아까와 같은 코드지만 이번에는 에러가 발생하지 않습니다.
class Test_out
{
// 이번엔 접근 제한자가 public 이기 때문에 에러가 발생하지 않습니다.
public void TestMethod_out()
{
Program.Main(new string[] { "" });
}
}
class Program
{
public static void Main(string[] args)
{
}
}