인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

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

jdna1009님의 프로필 이미지
jdna1009

작성한 질문수

나도코딩의 자바 기본편 - 풀코스 (20시간)

클래스

객체와 인스턴스의 차이

작성

·

1.2K

0

BlackBox bbox = new BlackBox(); 에서

  1. BlackBox 클래스로부터 bbox 객체 생성

  1. bbox 객체는 BlackBox 클래스의 인스턴스

라고 하셨는데

객체와 인스턴스가 무슨 차이가 있는지 이해가 안되네요..

답변 2

0

나도코딩님의 프로필 이미지
나도코딩
지식공유자

안녕하세요?
먼저 답변이 늦어 죄송합니다.

객체와 인스턴스는 일반적으로 같은 개념을 가리키지만, 객체가 생성된 상태를 구체적으로 나타내는 경우에는 인스턴스라는 용어를 사용하는 경우가 있습니다.

보다 명확하게 이해하기 위해 다음 예시를 통해 생각해볼까요?

사람 클래스인 Person 이 있습니다.
이름과 나이 정보를 가지는 간단한 클래스죠.

public class Person {
    String name;
    int age;
}

객체(Object) : 객체는 클래스의 인스턴스입니다. 클래스에 정의된 속성(변수)과 동작(메소드)을 가지고 있습니다. 예를 들어, Person 클래스로부터 생성된 person1 은 Person 클래스의 객체입니다.

Person person1 = new Person();

인스턴스(Instance) : 인스턴스는 클래스의 객체가 메모리에 할당되어 실제로 존재하는 상태를 의미합니다. 예를 들어, person1 이라는 객체가 메모리에 할당되어 생성된 상태를 person1 은 Person 클래스의 인스턴스이다 라고 말할 수 있습니다.

정리하자면, 클래스는 객체를 만들기 위한 템플릿(설계도)이며, 객체는 클래스의 인스턴스입니다. 객체가 메모리에 할당되어 실제로 존재하는 상태를 나타낼 때 인스턴스라는 용어를 사용할 수 있습니다.

하지만 보통은 객체와 인스턴스라는 용어를 혼용해도 크게 문제되지 않는다는 의견입니다 😊
감사합니다.

0

인스턴스는 객체를 부르는 다른 이름입니다.

인스턴스는 영어로 "사례", "…을 예로 들다" 라는 의미 잖아요. 클래스로 만든 객체의 사례(실제 예)라는 의미를 강조할 때 인스턴스라고 부릅니다.

또는, 객체가 메모리에 올라가면 이를 강조해서 인스턴스라고 부릅니다. 참고로, new 연산자를 사용하면 객체가 메모리에 올라갑니다.

클래스 : 객체 = 사람 : 김연아 라고 하면,

김연아는 객체이기도 하지만 대한민국에 김연아라는 이름을 가진 사람이 많겠죠? 그중에서 "피겨여왕 김연아"라고 구체적으로 말하면, 객체의 실제 예를 가리키니까 이 때는 인스턴스라고 부를 수 있겠죠.

jdna1009님의 프로필 이미지
jdna1009

작성한 질문수

질문하기