강의

멘토링

로드맵

인프런 커뮤니티 질문&답변

peterkimzz님의 프로필 이미지
peterkimzz

작성한 질문수

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part1: C# 기초 프로그래밍 입문

static의 정체

static vs new 메모리 할당

작성

·

232

3

class Calculator
    {
        static public int StaticAdd(int a, int b)
        {
            return a + b;
        }

        public int Add(int a, int b)
        {
            return a + b;
        }
    }

    class Program
    {
        static void Main(string[] args)
        {
            int num1 = 10;
            int num2 = 20;

            Calculator calculator = new Calculator();
            int result1 = calculator.Add(10, 20);

            int result2 = Calculator.StaticAdd(num1, num2);
        }
    }

하나 궁금증이 생겼는데 new로 Calculator를 만들어서 add를 호출하는것과, static 함수로 add를 호출하는 게 메모리 쪽에서 차이가 있을 것 같아서 질문드립니다.

Knight와는 조금 다른 케이스일 것 같지만, static 함수를 사용하면 calculator 변수를 만들 필요가 없어서 추가적인 메모리를 먹지 않고 Add 함수를 사용할 수 있는 건가요?? 급 궁금해서 질문드립니다.

답변 1

2

Rookiss님의 프로필 이미지
Rookiss
지식공유자

안녕하세요,

말씀주신대로 Calculator 클래스에 특별히 저장하고 있어야 하는 값이 없다면 (최근 연산 결과라거나..)

함수를 static으로 만들어서 Calculator 인스턴스 없이 바로 사용하는 것을 고려할 수 있겠습니다. (Console.Write처럼)

그러면 인스턴스 생성/소멸 비용 및 메모리 측면에서 모두 절약이 되겠죠 !

감사합니다.

peterkimzz님의 프로필 이미지
peterkimzz

작성한 질문수

질문하기