접근 제한자
클래스, 필드, 메서드, 속성 등 멤버들의 접근 범위를 제어하는 데 사용됩니다. 이를 통해 코드의 캡슐화를 구현하고, 외부에서의 불필요한 접근을 방지하며, 코드의 안정성과 보안성을 높일 수 있습니다.
값 변경 제약
변수, 필드, 속성 등에 대해 값이 변경될 수 있는 범위와 조건을 제한하는 데 사용됩니다. 이를 통해 데이터의 일관성을 유지하고, 불필요하거나 잘못된 변경을 방지할 수 있습니다. Unity에서도 이러한 제약은 코드 안정성을 높이는 데 중요하게 사용됩니다.
접근 제한자
public | 모두 접근 가능: Unity 인스펙터와 외부 클래스에서 접근 가능. |
private | 현재 클래스에서만 접근 가능: 기본 접근 수준이며, 외부 접근 불가. |
protected | 현재 클래스와 파생 클래스에서만 접근 가능. |
internal | 같은 어셈블리 내에서만 접근 가능: 다른 프로젝트에서 접근 불가. |
protected internal | 같은 어셈블리 또는 파생 클래스에서 접근 가능. |
private protected | 같은 어셈블리 내에서 파생 클래스에서만 접근 가능 (C# 7.2+). |
값 변경 제약
const | 컴파일 타임 상수: 선언 시 값 설정 필수, 이후 변경 불가. |
readonly | 런타임 상수: 선언 시 또는 생성자에서 값 설정 가능, 이후 변경 불가. |
static | 정적 필드/메서드: 클래스 레벨에서 동작하며, 모든 인스턴스가 값을 공유. |
volatile | 멀티스레드용 필드: 메모리의 값을 캐싱하지 않고 항상 읽고 씀. |
sealed | 클래스 상속 금지: 클래스나 메서드가 더 이상 확장되지 않음. |
abstract | 구현 강제: 클래스나 메서드가 반드시 파생 클래스에서 구현되어야 함. |
virtual | 재정의 가능: 메서드가 파생 클래스에서 재정의 가능. |
override | 재정의 구현: 부모 클래스의 virtual 메서드를 재정의. |
async | 비동기 메서드 선언: 메서드 내에 await를 사용할 수 있음. |
extern | 외부 구현 참조: 외부 코드나 DLL에서 구현된 메서드. |
사용 예제
'Unity Learn > 주니어 프로그래머' 카테고리의 다른 글
6단원 - 프로젝트 최적화 : LateUpdate() (0) | 2024.11.26 |
---|---|
6단원 - 프로젝트 최적화 : FixedUpdate() (0) | 2024.11.26 |
6단원 - 프로젝트 최적화 : 직렬화 (0) | 2024.11.26 |
5단원 - 사용자 인터페이스 : AddListner() (0) | 2024.11.25 |
5단원 - 사용자 인터페이스 : 프로젝트 최종 완성 (0) | 2024.11.24 |