728x90
Access Modifiers(접근 한정자)는 객체지향에서 공개하고 싶은 것은 공개하고, 은닉하고 싶은 것은 은닉할 수 있도록 코드를 수식하며 필드, 메서드, 프로퍼티 등 모든 요소에서 사용 가능하다. 접근 한정자를 사용하여 클래스 외부에서 직접적인 접근을 허용하지 않는 멤버를 설정하여 정보를 공개/은닉할 수 있다.
접근 한정자로 수식하지 않은 클래스의 멤버는 무조건 private으로 접근 수준이 자동 지정되는 특징이 있다. 즉, 클래스 내의 멤버를 일단 감추고 나중에 공개할지를 결정하는 것이 순서이다.
C#에서 제공하는 접근 한정자는 6가지
접근 한정자 | 설명 |
public | 클래스의 내/외부 모든 곳에서 접근을 허용할 수 있다. 클래스 멤버가 외부로 공개되며, 해당 객체를 사용하는 어떤 프로그램에서도 직접적인 접근이 가능. priavte멤버와 프로그램 사이의 인터페이스 역할. |
protected | 클래스의 외부에서 접근할 수 없지만, 파생 클래스에서는 접근이 가능하다. protected 멤버는 부모 클래스에서는 public 멤버처럼 취급되며, 외부에서는 private 멤버처럼 취급된다. |
private | 클래스의 내부에서만 접근할 수 있고 파생클래스에서는 접근이 불가능하다. 클래스 멤버는 외부로 공개되지 않고, 외부에서 직접적으로 접근할 수도 없다. |
internal | 같은 어셈블리에 있는 코드에서만 public으로 접근 가능하고, 다른 어셈블리에 있는 코드에서는 private과 같은 수준의 접근성을 가진다. |
protected internal | 같은 어셈블리에 있는 코드에서만 protected로 접근 가능하고, 다른 어셈블리에 있는 코드에서는 private과 같은 수준의 접근성을 가진다. |
private protected | 같은 어셈블리에 있는 클래스에서 상속받은 클래스 내부에서만 접근이 가능하다. |
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 |