instance란?

유상우·2023년 4월 15일
4

인스턴스란 객체 지향 프로그래밍(Object Oriented Programming)에서 class에 소속된 개별적인 객체를 말한다.

예를 들어, user라는 클래스를 정의하고 hong이라는 객체를 생성할 경우, hong이라는 객체는 user라는 클래스의 인스턴스가 된다. 하나의 클래스를 사용하여 유사한 성질을 가진 수많은 인스턴스를 생성할 수 있다.

OOP에서의 관점은 객체가 메모리에 할당되어 실제 사용될 때 인스턴스라고 부른다. 객체는 클래스의 인스턴스이고, 객체 간의 링크는 클래스 간의 연관 관계의 인스턴스이며, 실행 프로세스는 프로그램의 인스턴스이다.

객체와 인스턴스

OOP적 관점에서 객체와 인스턴스의 차이점으로는 객체는 선언, 인스턴스는 실체화를 의미한다. 클래스의 타입으로 선언 되었을 때 객체라고 부르며, 그 객체가 메모리에 할당되어 실제 사용될 때는 인스턴스라고 부른다.

인스턴스화

OOP에서 클래스는 일종의 설계도이다. 클래스를 정의하는 것 자체로는 할수 있는 것이 많지 않지만, 클래스를 사용해 구체적인 제품을 만드는 것이 인스턴스화다.

Animal dog = new Animal()

new Animal()은 클래스를 구체적으로 만드는 키워드이다. 이렇게 구체적으로 만들어진 형태를 인스턴스라고 부른다. 붕어빵 기계를 예로 들어보면 붕어빵을 만드는 틀은 class이고 붕어빵은 Object이다. 그리고 붕어빵이 만들어지는 과정이 인스턴스화이며 틀을 이용해 만들어진 각각의 붕어빵들이 인스턴스이다.

붕어빵 기계라는 클래스에서 '굽다' 메소드를 실행시켜 붕어빵을 굽는다. 그리고 만들어진 붕어빵들은 전부 객체들이다. 하지만 같은 기계에서 만들어졌어도 서로 다른 밀가루양과 팥을 가지고 있다. 실제로 만들어진 붕어빵인 이것이 인스턴스이며, 이 붕어빵을 굽는 행위가 인스턴스화다.

profile
Potentialist

2개의 댓글

comment-user-thumbnail
2024년 3월 28일

좋네요

답글 달기
comment-user-thumbnail
2024년 4월 4일

좋은 정보 감사합니다.

답글 달기