자바는 객체지향 프로그래밍(OOP) 언어로, 모든 로직은 클래스 내에 존재한다.
현실 세계의 대상을 추상화하여 코드로 구현하는 클래스와 객체의 핵심 개념을 분석한다.
클래스: 객체의 설계도
클래스는 속성(Field)과 행위(Method)를 정의하는 템플릿이다.
// 클래스 정의
public class Car {
// 1. 속성 (필드)
private String model;
private int speed;
// 2. 생성자 (초기화)
public Car(String model) {
this.model = model;
this.speed = 0;
}
// 3. 행위 (메서드)
public void accelerate(int increment) {
speed += increment;
System.out.println(model + " 가속: " + speed + "km/h");
}
public void stop() {
speed = 0;
System.out.println(model + " 정지");
}
}
객체: 설계도를 기반으로 생성된 실체
new 키워드를 사용하여 클래스로부터 객체(인스턴스)를 생성하고 메모리에 할당한다.
public class Main {
public static void main(String[] args) {
// 객체 생성 (인스턴스화)
Car myCar = new Car("Tesla Model 3");
Car yourCar = new Car("Hyundai Ioniq 5");
// 메서드 호출을 통한 상호작용
myCar.accelerate(50);
yourCar.accelerate(30);
myCar.stop();
}
}
OOP의 주요 특징 분석
- 캡슐화: 필드를
private으로 숨기고 메서드를 통해서만 접근하게 하여 데이터를 보호한다. - 독립성: 각 객체는 자신만의 고유한 상태(메모리 공간)를 유지한다.
- 재사용성: 한 번 정의한 클래스를 통해 무수히 많은 객체를 생성할 수 있다.
P.S
클래스는 설계도이며 객체는 그 설계도로 만든 실제 제품이다.
자바 개발의 핵심은 현실의 복잡한 문제를 클래스 단위로 잘 쪼개고, 객체 간의 협력 구조를 설계하는 데 있는 것 같다.