반응형
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://stackoverflow.com/questions/3323330/difference-between-object-and-instance
반응형
'Programming > 기초지식' 카테고리의 다른 글
[Lombok] 생성자를 만드는데 사용되는 Lombok 어노테이션 (0) | 2021.08.25 |
---|---|
[Gradle] Could not find method compile() arguments~ (0) | 2021.08.17 |
Servlet은 무엇일까(등장배경 및 동작과정) (0) | 2021.08.11 |
웹 서버 vs 웹 애플리케이션 서버 / Web Server vs WAS (0) | 2021.08.11 |
REST에 대한 정리 (0) | 2021.08.03 |