말감로그

Unity C# 기초 3. 멤버변수, 지역변수 본문

언어/C#

Unity C# 기초 3. 멤버변수, 지역변수

habbn 2023. 5. 10. 01:52
728x90

 

1. 멤버변수?

 

 

멤버변수란 Class 내에 선언되는 변수를 뜻합니다.

멤버 변수 중에 static이 붙은 것은 클래스 변수, static이 붙지 않은 것은 인스턴스 변수라고 합니다.

자동으로 초기화가 이루어지고 클래스 내에서 모두 사용이 가능합니다. 

 

클래스 변수(클래스 소속 정적멤버변수) : 생명주기가 프로그램 시작에서 끝날 때까지의 변수

인스턴스 변수 (클래스 소속 멤버변수) : 클래스 소속의 변수를 멤버변수

 

public class Test : MonoBehaviour
{
     int m_iv;                   // 인스턴스 변수
     public static int s_cv;     // 클래스 변수
     
     void Start()
     {
         m_iv = 555;			
     }
}

 

 

2. 지역변수?

 

 

메소드 내부에서 선언되어서 사용되는 변수를 뜻합니다. 

메소드 내부에서 선언된 변수는 메소드 내부에서만 사용이 가능하고 보통 메서드를 벗어나면 혹은 실행이 끝나면 없어집니다. (메모리에서 사라짐)

 

  • 지역변수의 특징
    1.  자기 소속의 지역을 벗어나서는 사용할 수 없다.
    2.  자기 소속의 하위 중괄호(지역) 안에서는 사용할 수 있다.
    3.  변수 선언 전에는 사용할 수 없다.
    4.  같은 지역 내에서는 같은 이름의 변수를 선언할 수 없다.
    5.  소속이 다르면 같은 이름의 지역변수를 선언할 수 있다.
    6.  이름이 중복될 경우 가까운쪽이 우선된다.

 

public class Test : MonoBehaviour
{
	int m_iv = 999;        //멤버변수
    
    void Start()
    {   //메서드 영역
    
        //a_AA = 1;        //변수 선언 전에는 사용 X
        int a_AA = 0;      //지역변수
        
        // 자기 소속 중괄호 하위 중괄호에서 사용 가능
        {
            {
            	a_AA = 100;
            }
            
            int a_BB = 200;
            a_BB = 300;
        }
        // 자기 소속 지역을 벗어나서는 사용 X
        //a_BB = 400;    
        
        int a_CC = 10;
        //int a_CC = 20;         // 같은 지역 내에 같은 이름의 변수 선언 X
        
        {
            int m_iv = 111;      //지역변수는 멤버변수와 같은 이름으로 선언해서 사용 가능
            m_iv = 222;          //여기서 m_iv는 가까운쪽 우선 된다는 규칙에 의해 지역변수를 의미
            
            Debug.Log(m_iv + " : " + this.m_iv);  // this.m_iv 명시적으로 멤버변수에 접근
            //출력결과 222 : 999
    }
    
    void Update()
    {
        //a_AA = 10; // 자기 소속 지역을 벗어나서 사용 X
    }
}
728x90