
요약
- Class(클래스): Object를 만들기 위한 설계도. 객체의 상태(Field)와 행동(Method)를 정의한다.
- Instance(인스턴스): Class의 설계도를 바탕으로 생성된 실제 객체.
- Object(객체): Class에 의해 정의된 Instance, 상태와 행동을 가지며 특정 클래스의 Instance이다.
1. Class (클래스)
Class는 Object를 생성하기 위한 설계도에 빗대어 설명할 수 있다.
Class는 객체의 상태(Field)와 행동(Method)을 정의한다.
즉, Class는 특정 타입의 Object가 가져야 할 Attribute와 Method를 정의하는 틀이 된다.
자동차를 모델링을 예를 들면 자동차 클래스에는 차의 속도, 색상, 제조사와 같은 Attribute(Field)와 가속, 감속, 정지와 같은 행동(Method)이 포함될 수 있다.
* Java 실행 시, Class는 JVM의 메모리에서 Class Area(Method Area)에 로드된다.
public class Car {
// 속성 (필드)
String color;
String manufacturer;
int speed;
// 생성자
public Car(String color, String manufacturer) {
this.color = color;
this.manufacturer = manufacturer;
this.speed = 0;
// 초기 속도는 0으로 설정
}
// 행동 (메서드)
void accelerate(int increment) {
speed += increment;
}
void brake(int decrement) {
speed -= decrement;
}
void stop() {
speed = 0;
}
void displayStatus() {
System.out.println("Color: " + color + ", Manufacturer: " + manufacturer + ", Speed: " + speed);
}
}
2. Instance (인스턴스)
인스턴스는 클래스에 정의된 설계를 바탕으로 실제로 생성된 객체를 의미한다.
클래스는 그 자체로는 실체가 없지만, 클래스를 기반으로 메모리에 할당된 객체가 생성될 때 이를 인스턴스라고 한다.
다시 말해, 클래스는 추상적인 개념이고, 인스턴스는 구체적인 실체이다.
public class Main {
public static void main(String[] args) {
// Car 클래스의 인스턴스 생성
Car myCar = new Car("Red", "Toyota");
// myCar는 Car 클래스의 인스턴스
myCar.accelerate(50);
myCar.displayStatus();
// 출력: Color: Red, Manufacturer: Toyota, Speed: 50
}
}
3. Object (객체)
Object는 클래스에 의해 정의된 인스턴스다.
보통 Instance와 Object라는 용어는 거의 동일하게 사용되지만, Object가 더 일반적인 용어다.
Object는 특정 Class의 인스턴스일 수 있다. 객체는 상태(필드)와 행동(메서드)을 가지고 있으며, 이 두 가지가 결합되어 객체의 고유한 특성을 나타내게 된다.
Car myCar = new Car("Red", "Toyota");
* Class를 사용하여 JVM Heap Area에 새로운 Instance(Object)를 생성할 수 있다.
- 참조
'JAVA' 카테고리의 다른 글
| 다형성(Polymorphism) 이란 (0) | 2024.08.16 |
|---|