C# 프로그래밍 기초 실습 전자책
C# 접근 제한자 (Access Modifier)

접근 제한자는 외부로부터 클래스 혹은 클래스 멤버들(메서드, 속성, 이벤트, 필드)로의 접근을 제한할 때 사용하는 것으로 다음과 같은 종류가 있다.

접근 제한자 설명
public 모든 외부 혹은 파생 클래스에서 이 클래스를 엑세스할 수 있다. (개별 멤버의 엑세스 권한은 해당 멤버의 접근 제한자에 따라 별도로 제한된다)
internal 동일한 Assembly 내에 있는 다른 클래스들이 엑세스 할 수 있다. 다른 어셈블리에서는 접근 불가.
protected 파생클래스에서 이 클래스 멤버를 엑세스할 수 있다.
private 동일 클래스 내의 멤버만 접근 가능하다.

접근 제한자는 public class A {} 와 같이 클래스 앞에 사용하거나 메서드, 속성 등의 클래스멤버 앞에 사용하여 (예: protected int GetValue(); ) 접근을 제한하게 된다.

접근 제한자 사용

클래스의 필드는 기본적으로 private으로 설정하여 외부로터의 접근을 완전히 제한하는 것이 일반적이다 (객체 지향 프로그래밍의 원칙에 따라). 메서드는 외부에서 호출해야 하는 것은 public으로 하고 내부에서만 사용되는 것은 private으로 설정한다. 메서드는 이외에도 어셈블리 내부에서만 사용 가능한 internal, 파생클래스에서 엑세스할 수 있는 protected 를 사용할 수 있다. 속성은 메서드와 동일한 방식으로 설정한다.

다음은 접근 제한자를 사용하는 예제이다.


예제

internal class MyClass
{
   private int _id = 0; 

   public string Name { get; set; }

   public void Run(int id) {}

   protected void Execute() { }
}

  • MyClass는 internal 클래스로서 동일 어셈블리 내에서만 접근 가능하다.
  • _id 는 private 필드로서 클래스 내부에서만 사용 가능하다 .
  • Name은 public 프로퍼티로서 클래스를 엑세스할 수 있는 모든 외부 객체에서 접근 가능하다.
  • Run()은 public 메서드로서 클래스를 엑세스할 수 있는 모든 객체에서 접근 가능하다.
  • Execute()는 protected 메서드로서 해당 MyClass와 이의 파생 클래스에서만 접근 가능하다.


본 웹사이트는 광고를 포함하고 있습니다. 광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.




Comment admin@*** 8/4/2015 4:16:31 PM
Comment soldier4443@*** 12/31/2017 6:00:32 AM
Comment admin@*** 12/31/2017 11:44:10 PM
Comment commenter424@*** 3/2/2018 10:46:49 PM
Comment admin@*** 3/3/2018 5:23:38 PM

Comment 의견/코멘트 쓰기
이메일
 *정확한 이메일이 아닐 경우 삭제될 수 있습니다
의견/코멘트
좌측의 3자리 문자들을 입력해 주십시오





아티클 모바일 링크
C# 스터디 소셜미디어
쉽게 배우는 파이썬 기초