C# 접근 한정자 공개/은닉 Scope and Access Modifiers

728x90

Access Modifiers(접근 한정자)는 객체지향에서 공개하고 싶은 것은 공개하고, 은닉하고 싶은 것은 은닉할 수 있도록 코드를 수식하며 필드, 메서드, 프로퍼티 등 모든 요소에서 사용 가능하다. 접근 한정자를 사용하여 클래스 외부에서 직접적인 접근을 허용하지 않는 멤버를 설정하여 정보를 공개/은닉할 수 있다.

 

접근 한정자로 수식하지 않은 클래스의 멤버는 무조건 private으로 접근 수준이 자동 지정되는 특징이 있다. 즉, 클래스 내의 멤버를 일단 감추고 나중에 공개할지를 결정하는 것이 순서이다.

 

C#에서 제공하는 접근 한정자는 6가지

           접근 한정자 설명
public 클래스의 내/외부 모든 곳에서 접근을 허용할 수 있다. 클래스 멤버가 외부로 공개되며, 해당 객체를 사용하는 어떤 프로그램에서도 직접적인 접근이 가능. priavte멤버와 프로그램 사이의 인터페이스 역할.
protected 클래스의 외부에서 접근할 수 없지만, 파생 클래스에서는 접근이 가능하다. protected 멤버는 부모 클래스에서는 public 멤버처럼 취급되며, 외부에서는 private 멤버처럼 취급된다. 
private 클래스의 내부에서만 접근할 수 있고 파생클래스에서는 접근이 불가능하다. 클래스 멤버는 외부로 공개되지 않고, 외부에서 직접적으로 접근할 수도 없다.
internal 같은 어셈블리에 있는 코드에서만 public으로 접근 가능하고, 다른 어셈블리에 있는 코드에서는 private과 같은 수준의 접근성을 가진다.
protected internal 같은 어셈블리에 있는 코드에서만 protected로 접근 가능하고, 다른 어셈블리에 있는 코드에서는 private과 같은 수준의 접근성을 가진다.
private protected 같은 어셈블리에 있는 클래스에서 상속받은 클래스 내부에서만 접근이 가능하다.

<unity learn 발췌>

public으로 선언하면 Inspector 창에서 입력 값을 수정할 수 있다. 게임 test하면서 변수를 즉각적으로 조정하는데 용이.

default로 특정 alpha 값을 설정하더라도, Start 함수 내 alpha값이 바뀌면 지정하면 play mode에서 바뀐 변수로 세팅된다. 추가적으로 playmode에서 inspector 창의 public 값을 자유롭게 조정할 수 있지만, exit하면 해당 값이 저장되지 않는다.

728x90

'게임 프로그래밍 > C#' 카테고리의 다른 글

C# 유니티 함수 Update and FixedUpdate  (0) 2021.07.21
C# 유니티 함수 Awake and Start  (0) 2021.07.21
C# Loops 루프  (0) 2021.07.20
C# IF statements IF문  (0) 2021.07.20
C# 구문과 규약  (0) 2021.07.20