본문 바로가기
C#

C# 메서드 사용(1) - 인스턴스 변수, 로컬변수 선언

by 고체물리학 2021. 1. 13.
using System;

namespace ConsoleApp1
{
    class Program
    {
        static void Main(string[] args)
        {
            
        }
    }
}

String[] args 변수: 메서드 내에서 선언되었으므로 로컬 변수 또는
                         메서드 파라미터 내에서 선언되었으므로 파라미터 변수라고 함
                         main() 메서드가 끝나면 args 변수도 제거됨

 

    class VariableType
    {
        int instanceMemberVariable;

        public void method1()
        {
            int localVariable = 10;
            Console.WriteLine(instanceMemberVariable); // 인스턴스 변수 접근 가능
            Console.WriteLine(localVariable); // 자신의 메서드에서 선언된 로컬 변수 접근 가능
        } // localVariable 변수가 제거되는 지점

        public void method2()
        {
            Console.WriteLine(instanceMemberVariable); // 인스턴스 변수 접근 가능
           //Console.WriteLine(localVariable); // 다른 메서드에서 선언된 로컬 변수 접근 불가
        }
    }

 

VariableType 클래스의  instanceMemberVariable는 인스턴스 변수(멤버 변수)

인스턴스 생성 시(new) 생성되며, 인스턴스 제거 시 변수도 제거됨

클래스 내의 모든 메서드에서 접근 가능

 

method1() 메서드의 localVariable은 로컬 변수로 선언된 시점에서 생성되며, method1()메서드가 끝나면 제거됨

method2() 메서드는 instanceMemberVariable에 접근할 수 있지만 method1()에 선언된 localVariable는 접근 불가하다

 

 

[전체 코드]

using System;

namespace ConsoleApp1
{
    class Program
    {
        static void Main(string[] args)
        {
            VariableType a = new VariableType();
            a.method1();
            a.method2();
             
        }
    }

    class VariableType
    {
        int instanceMemberVariable;

        public void method1()
        {
            int localVariable = 10;
            Console.WriteLine(instanceMemberVariable); // 인스턴스 변수 접근 가능
            Console.WriteLine(localVariable); // 자신의 메서드에서 선언된 로컬 변수 접근 가능
        } // localVariable 변수가 제거되는 지점

        public void method2()
        {
            Console.WriteLine(instanceMemberVariable); // 인스턴스 변수 접근 가능
             //Console.WriteLine(localVariable); // 다른 메서드에서 선언된 로컬 변수 접근 불가
        }
    }
}

 

[실행 결과]

 

instanceMemberVariable는 기본 값 0이 할당되어 저장됨

 

반응형

댓글