[Unity]/[C#]

[C# 기초] #03 : 변수 - 접근지정자(public, private, protected)

극꼼 2021. 7. 7. 16:55
반응형


[서론]

앞서서 변수의 데이터 형식과 형변환, 값형식과 참조형식에 대해서 알아봤습니다.

오늘은 마지막으로 접근지정자에 대해 알아보겠습니다.

접근지정자는 위의 사진과 같이 변수의 앞에 붙어 변수의 사용 범위를 제한합니다.

접근지정자의 종류에는 public, protected, private 3가지가 있으며, 

위의 체크한 위치에 접근지정자를 따로 적어서 지정해주지 않더라도 기본적으로 private가 적용됩니다.

 


[전역변수와 지역변수]

접근지정자를 배우기 전에 우선 전역변수와 지역변수의 개념을 살펴봅니다.

클래스 내에서 어떤 함수나 블럭{} 안에 있는 변수를 지역변수, 그렇지 않은 변수를 전역변수라 합니다.

위의 이미지에서 변수 a는 Start함수 안에 있기 때문에 지역변수입니다.

 

전역변수는 클래스 내 어디서든 사용될 수 있고, 지역변수는 해당 변수가 선언된 함수나 블럭 안에서만 사용할 수 있습니다. 아래 이미지와 같이 { }밖의 다른 함수에서는 사용할 수 없습니다.

접근지정자는 전역변수 앞에 붙여 다른 클래스에서의 사용을 제한합니다.

 

[public, protected, private의 차이점]

public : 어떤 클래스에서도 해당 변수에 접근 가능하게 해주고, 인스펙터 창에서 해당 변수를 확인할 수 있게 해줍니다. 

private : 해당 변수가 선언된 클래스 내에서만 사용 가능합니다. 

protected : 해당 변수가 선언된 클래스와 그 클래스를 상속받는 또 다른 클래스에서만 사용 가능합니다. 

 

 

별도로 접근지정자를 선언해주지 않으면 변수는 private가 디폴트로 붙게 되고 해당 클래스 내에서만 사용할 수 있게 됩니다. 


[결론]

  사용 범위 인스펙터 창에서 확인 유무
public 모든 클래스 o (HideInInspector를 이용하면 인스펙터 창에서 보이지 않게 숨기기 가능)
protected 해당 클래스와 그 클래스를 상속받는 클래스 x (SerializeField를 이용하면 인스펙터 창에 보이게 가능)
private only 해당 클래스

 

반응형