■ 접근 제한자(Access Modifier) :
- '접근 제한자' 혹은 '접근 한정자'라고 불림
- class 및 field, method 등의 접근 범위를 정의하는데 사용
■ 접근 제한자(Access Modifier) 종류 :
접근 제한자 | 설명 |
public | 클래스의 내부/외부 모든 곳에서 접근 가능 |
protected | 클래스 외부에서 접근 불가, 파생 클래스에서 접근 가능 |
private | 클래스 내부에서만 접근 가능, 파생 클래스에서도 접근 불가 |
internal | 같은 어셈블리에 있는 코드에서만 public으로 접근 가능, 다른 어셈블리에 있는 코드에서는 private과 같은 수준의 접근성 |
protected internal | 같은 어셈블리에 있는 코드에서만 protected로 접근 가능, 다른 어셈블리에 있는 코드에서는 private과 같은 수준의 접근성 |
private protected | 같은 어셈블리에 있는 클래스에서 상속받은 클래스 내부에서만 접근 가능 |
■ 어셈블리(Assembly) :
- .Net 기반 Application의 배포 단위
- C#에서 컴파일된 소스 코드의 결과를 .Net Assembly라고 함
- 실행 파일(.exe) 또는 동적 연결 라이브러리(.dll) 파일 형태를 가짐
■ 은닉성(캡슐화) :
- 보여주고 싶은 것만 보여줌
- 필요한 최소의 기능만 노출하고 내부를 감추는 것
- 보안을 위해서 접근 제한자(Access Modifier)를 사용하여 외부에서 접근 간으한 보호 수준 결정
■ Example
class Program
{
static void Main(string[] args)
{
TestClass test = new TestClass();
Console.WriteLine($"public 변수 X = {test.X}는 외부에서 접근 할 수 있습니다.");
test.TestMethod();
}
}
public class TestClass
{
public int X = 10;
private int Y = 20;
public void TestMethod()
{
Console.WriteLine($"private 변수 Y = {Y}는 외부에서 접근 할 수 없습니다.");
}
}
'개인공부 > C#' 카테고리의 다른 글
[C#] 중첩 클래스(Nested Class), 분할 클래스(Partial Class) (0) | 2022.09.08 |
---|---|
[C#] 상속(Inheritance) (0) | 2022.09.07 |
[C#] 정적(Static) 클래스, 필드, 메서드 (0) | 2022.09.05 |
[C#] 얕은 복사(Shallow Copy), 깊은 복사(Deep Copy) (0) | 2022.09.05 |
[C#] 클래스(Class) (0) | 2022.09.01 |