java) Static 과 Instance

박우영·2023년 2월 27일
0

자바/코틀린/스프링

목록 보기
12/35

Static 과 Instance

클래스에 대한 개념을 배우다보면 자주 듣는 단어들일거다. 이 단어를 정확히 알아야 배울때 이해가 쉽고 정확한 개념이 생길거라고 생각이 든다. 강사님께서 인스턴스는 대리점, 스태틱은 본사라고 설명해주셔서 추상적인 개념을 잡는데 도움이되었다. 좀더 구체적으로 확인하며 개념을 잡아보자.

인스턴스(Instance)

인스턴스란 클래스에 속하는 객체를 말한다.

예를들어 위처럼 계산기(Calculator)라는 클래스가 있고, 프로그램을 개발하며 계산이 필요한 부분에서 계산을 위해

계산기(Calculator) 객체를 생성하면 계산기(Calculator)라는 인스턴스가 생성되는 것이다.

클래스를 객체를 만들기 위한 틀이라 생각하면 되는데,

쉽게말해 피자를 만드는 과정을 예로 들겠다.

피자라는 클래스는 도우, 토핑, 소스, 재료 등 피자를 만드는데 필요한 여러가지 구성요소(멤버변수)를 가지고 있다.

여기서 만들어지는 결과물(Object)은 피자라는 객체가 되며, 만들어지는 방식에 따라 여러가지 피자(Instance)가 생성될 수 있으며

이러한 피자가 만들어지는 과정, 즉 피자를 굽는다는 행위가 '인스턴스화 하다'라고 보면 된다.

1) 피자(클래스)라는 틀에서 -> 2) 피자를 만든다(인스턴스화) -> 3) 이에 결과물로 피자(인스턴스)가 생성된다

피자를 굽는 과정에 따라 여러가지 다른 피자들이 만들어 지는데 이 피자들을 인스턴스라고 말한다.

스태틱(static)

static이란 사전적 의미로 static은 정적인, 고정인 이라는 뜻이다.

사실 static이란 개념은 Java에서만 쓰이는 개념은 아니다.

넘어가서, static은 변수를 선언하거나 메소드를 생성할 때 같이 붙여 써주는데

이렇게 static으로 선언한 변수는 "프로그램이 실행될 때 Java메모리에 할당되며, 이는 프로그램이 종료될 때 해제된다"고 한다.

위 굵은 글씨를 해석하면, static은 "해당 클래스의 객체를 생성하지 않고도 static자원에 접근이 가능하다"라는 뜻이다

쉽게 정리하자면 인스턴스는 인스턴스, 스태틱 둘다 사용할수있고, 스태틱은 스태틱만 사용할수있다.

0개의 댓글