본문 바로가기

Programming/기초지식

클래스 vs 객체(오브젝트) vs 인스턴스 각각의 차이점

반응형

https://stackoverflow.com/questions/2885385/what-is-the-difference-between-an-instance-and-an-object

 

stack overflow의 누군가가 간단히 정의했다.

  • Class : a specification, blueprint for an object
  • Object : physical presence of the class in memory
  • Instance : an unique copy of the object (same structure, different data)

해당 개념을 위 그림과 같이 자동차에 비유하면 다음과 같지 않을까?

  • Class : 자동차 설계도
  • Object : 설계도대로 만든 자동차(실체)
  • Instance : 설계도를 바탕으로 소프트웨어 세계에 구현된 구체적인 실체

Class(a blueprint or prototype from which objects are created)

- Class는 Object 생성을 위한 설계도로 해석할 수 있다.

- 설계도 안에는 사용자 필요에 따른 다양한 속성(Properties) 및 메서드(Method)를 설정 할 수 있다.

ex) 자동차 클래스 생성. (일반적으로)자동차로 정의되기 위해서는 바퀴,창문,백미러,머플러 등등이 있어야 한다. 자동차가 되기 위한 여러 속성들을 정의해준다.

Object(the physical entity for which memory is allocated)

- Object는 Class에 설정된 그대로 생성된 실체다.

- Object가 여러개 있다면 이들 모두 같은 속성을 가지지만, 서로 다른 특성(맞는 단어인지?)을 가진다.

ex) 자동차 클래스에서 자동차를 만들었다. A 자동차는 바퀴가 6개, 창문이 2개다. B 자동차는 바퀴가 4개, 창문이 1개다. 이처럼 같은 속성을 공유하지만 그 속의 내용은 서로 다를 수 있다.

 

Instance(a unique copy of Class)

- Object를 실체화한 것.

- Object가 메모리에 할당되어 사용되어질 때 Instance라고 한다.

- 추상적인 개념과 구체적인 Object 사이의 관계에 초점을 맞추고 있다.

 


예제

public class Car{ // Car 클래스 생성

    // Car 클래스 공통속성
    String brand;
    String model;
    String color;
    int price;
    
    // 메소드
    public String getInfo(){
    	return("Brand: " + brand 
                + ", Model: " + model 
                + ", Color: " + color 
                + ", Price: " + price);
    }
}

public class Execute{
	public static void main(String[] args){
    	
        // Object 선언
        Car mycar;
        
        // Instance화    
    	mycar = new Car();
        mycar.brand = "현대";
        mycar.model = "GV80";
        mycar.color = "white";
        mycar.price = 7777;
        
        System.out.println(mycar.getInfo());
        // Brand: 현대, Model: GV80, Color: white, Price: 7777  
    }
}

 


참고

https://www.ijemin.com/blog/%EC%98%A4%EB%B8%8C%EC%A0%9D%ED%8A%B8%EC%99%80-%EC%9D%B8%EC%8A%A4%ED%84%B4%EC%8A%A4%EC%9D%98-%EC%B0%A8%EC%9D%B4-difference-between-obect-and-instance/

 

오브젝트와 인스턴스의 차이 – I_Jemin

OOP에서 오브젝트 Object와 인스턴스 Instance는 비슷한 의미로 사용되지만, 무의식적으로 분류를 하고 사용하고 있었습니다. 문제는 둘다 실제로 존재하는 사물을 의미하기 때문에 명확하게 둘의

www.ijemin.com

https://stackoverflow.com/questions/3323330/difference-between-object-and-instance

 

Difference between object and instance

I know this sort of question has been asked before, but I still feel that the answer is too ambiguous for me (and, by extension, some/most beginners) to grasp. I have been trying to teach myself b...

stackoverflow.com

https://geonlee.tistory.com/11

 

Q. Class, Object, Instance의 차이점을 설명해주세요.

Q. Class, Object, Instance의 차이점을 설명해주세요.** Goal Class, Object, Instance의 개념을 설명할 수 있다. Class, Object, Instance의 차이를 이해할 수 있다. Class, Object, Instance의 개념 Class란?..

geonlee.tistory.com

반응형