자바/객체 지향 프로그래밍

클래스와 객체 - 자바 객체 지향의 핵심 개념 완전 정복

끄적인다 2025. 4. 24. 23:28
반응형

자바(Java)는 객체 지향 프로그래밍(OOP, Object-Oriented Programming) 언어입니다. 그 중심에는 **클래스(class)**와 **객체(object)**라는 개념이 있습니다. 이 글에서는 클래스와 객체의 정의부터 구조, 예제까지 쉽게 정리해드립니다.


📌 1. 클래스(Class)란?

클래스는 객체를 생성하기 위한 설계도입니다. 속성(필드)과 동작(메서드)을 정의합니다.

✅ 클래스 예시

public class Person {
    String name;        // 속성(필드)
    int age;

    void introduce() {  // 동작(메서드)
        System.out.println("안녕하세요. 제 이름은 " + name + "이고, 나이는 " + age + "살입니다.");
    }
}

🧍‍♂️ 2. 객체(Object)란?

객체는 클래스를 바탕으로 실제 메모리에 생성된 인스턴스입니다. 하나의 클래스로 여러 객체를 만들 수 있습니다.

✅ 객체 생성 및 사용 예시

Person person1 = new Person();
person1.name = "철수";
person1.age = 20;
person1.introduce();

출력: 안녕하세요. 제 이름은 철수이고, 나이는 20살입니다.


🔁 3. 클래스와 객체의 관계

개념설명

클래스 객체를 만들기 위한 설계도
객체 클래스에 따라 생성된 실체

예시 비유:

  • 클래스 = 설계도 (예: 자동차 설계도)
  • 객체 = 실제 제품 (예: 특정 자동차 한 대)

🛠️ 4. 생성자(Constructor)

생성자는 객체 생성 시 초기값을 설정하는 특수한 메서드입니다. 클래스 이름과 같고, 반환형이 없습니다.

✅ 생성자 예시

public class Person {
    String name;
    int age;

    // 생성자
    Person(String name, int age) {
        this.name = name;
        this.age = age;
    }

    void introduce() {
        System.out.println("안녕하세요. 제 이름은 " + name + "이고, 나이는 " + age + "살입니다.");
    }
}

Person p = new Person("영희", 25);
p.introduce();

🧠 5. 캡슐화(Encapsulation) 기초

객체 지향의 중요한 개념 중 하나로, 데이터를 외부로부터 보호하고, 제어된 방식으로 접근하게 합니다.

✅ 예시: getter/setter 사용

public class BankAccount {
    private int balance;

    public int getBalance() {
        return balance;
    }

    public void deposit(int amount) {
        if (amount > 0) {
            balance += amount;
        }
    }
}

✅ 정리 요약

용어 설명
클래스 객체 생성을 위한 설계도
객체 클래스에서 만들어진 실체
생성자 객체 초기화를 위한 특수 메서드
캡슐화 데이터를 보호하고 접근 제어하는 원칙

🚀 마무리

클래스와 객체는 자바 프로그래밍의 핵심입니다. 이를 제대로 이해하고 활용할 수 있어야 유지 보수하기 쉬운, 확장성 있는 코드를 작성할 수 있습니다. 다음 단계로는 상속, 다형성, 인터페이스 등의 객체 지향 개념으로 확장해보세요!

반응형