클래스(Class)는 객체를 정의하기 위한 청사진(설계도)입니다.
속성(필드)과 동작(메서드)을 정의하여 객체의 구조와 행동을 기술합니다.
예시: 자동차 설계도, 동물의 공통 특성 등
public class Car {
String brand; // 필드
int speed; // 필드
// 생성자
public Car(String brand, int speed) {
this.brand = brand;
this.speed = speed;
}
// 메서드
public void drive() {
System.out.println(brand + " is driving at " + speed + " km/h.");
}
}
인스턴스(Instance)는 클래스를 기반으로 생성된 실제 객체입니다.
클래스는 설계도이고, 인스턴스는 설계도를 기반으로 만들어진 실체입니다.
new 키워드를 사용하여 클래스의 인스턴스를 생성 public class Main {
public static void main(String[] args) {
Car car = new Car("Toyota", 120); // 인스턴스 생성
car.drive(); // 인스턴스 메서드 호출
}
}
| 구분 | 클래스 | 인스턴스 |
|---|---|---|
| 정의 | 객체의 설계도 | 클래스를 기반으로 생성된 실제 객체 |
| 메모리 할당 | 메모리에 할당되지 않음 | 메모리에 할당되어 실제 데이터와 동작을 가짐 |
| 역할 | 객체의 구조와 동작을 정의 | 프로그램에서 실제 동작을 수행하는 주체 |
| 예시 | 자동차 설계도 | 실제 생산된 자동차 |
public class MathUtils {
public static int add(int a, int b) {
return a + b;
}
}
public class Main {
public static void main(String[] args) {
int sum = MathUtils.add(3, 5); // 클래스 메서드 호출
System.out.println("Sum: " + sum);
}
}
Car car = new Car("BMW", 150);
car.drive(); // 인스턴스 메서드 호출
클래스 사용
인스턴스 사용
클래스와 인스턴스를 이해하는 것은 객체 지향 프로그래밍(OOP)의 핵심입니다.
클래스를 통해 구조화된 코드를 작성하고 인스턴스로 만들어 실제 애플리케이션에서 동작하도록 구현할 수 있습니다.
특히 프로젝트를 진행하며 설계 단계에서 클래스를 정의하고 이를 기반으로 다양한 인스턴스를 생성해 데이터를 처리하는 과정이 매우 중요하다는 것을 깨달았습니다.