inblog logo
|
DailyCoding
    JAVA

    14. 클래스(Class)와 객체(Object)

    박은서's avatar
    박은서
    Dec 16, 2025
    14. 클래스(Class)와 객체(Object)
    Contents
    1. 클래스(Class) 1️⃣ 클래스란?2️⃣ 클래스의 기본 구조3️⃣ 클래스의 구성 요소4️⃣ 클래스와 메모리 구조5️⃣ 클래스 설계 시 주의사항 ⭐6️⃣ 클래스의 종류2. 객체(Object)1️⃣ 객체란?2️⃣ 객체의 구성3️⃣ 객체 사용4️⃣ 비유5️⃣ 클래스 vs 객체 (헷갈림 포인트)6️⃣ 객체의 4가지 핵심 특징 (OOP)3. 인스턴스(Instance)1️⃣ 인스턴스란?2️⃣ 클래스 · 객체 · 인스턴스 관계3️⃣ 예시4️⃣ 인스턴스의 특징5️⃣ 객체 vs 인스턴스 차이 (면접용)6️⃣ 인스턴스와 메모리 구조 필기 정리

    1. 클래스(Class)

    교재 p.145-153 4.2 클래스와 객체 만들기

    1️⃣ 클래스란?

    객체를 만들기 위한 설계도(틀)
    • 어떤 상태(변수)와 행동(메서드)을 가질지 정의
    • 실체는 아니고 “모양을 정의한 청사진”
    • 사용자 정의 자료형
    👉 클래스 = 설계도

    2️⃣ 클래스의 기본 구조

    class 클래스이름 { // 필드(변수) 자료형 변수명; // 생성자 클래스이름() {} // 메서드 반환타입 메서드명() {} }

    3️⃣ 클래스의 구성 요소

    1) 필드(Field, 멤버 변수)

    • 객체의 속성
    • Heap 영역에 저장
    String name; int age;

    2) 생성자(Constructor)

    • 객체 생성 시 자동 호출
    • 초기화 담당
    • 클래스 이름과 동일
    Person (String name,int age) { this.name = name; this.age = age; }

    3) 메서드(Method)

    • 객체의 동작
    void introduce() { System.out.println(name); }

    4️⃣ 클래스와 메모리 구조

    Person p = new Person();
    Stack Heap p ─────────▶ Person 객체
    • 참조 변수 → Stack
    • 실제 객체 → Heap

    5️⃣ 클래스 설계 시 주의사항 ⭐

    • 필드는 private
    • 메서드로 접근 (getter/setter)
    • 하나의 클래스는 하나의 책임

    6️⃣ 클래스의 종류

    1) 일반 클래스 (Concrete Class)

    객체를 만들 수 있는 실제 클래스
    필드와 메서드를 완전한 형태로 가지고 있으며, 인스턴스 생성 가능
    • new 로 객체 생성 가능
    class Dog { void sound() { System.out.println("멍멍"); } }
    Dog d = new Dog(); // 객체 생성 가능

    2) 추상 클래스 (Abstract Class)

    하나 이상의 ‘미완성 메서드(abstract method)’를 포함할 수 있는 클래스
    객체를 직접 만들 수 없고, 반드시 상속 받아 사용
    • abstract 키워드를 사용
    • 객체 생성 불가
    abstract class Animal { abstract void sound(); // 추상 메서드 }
    Animal a = new Animal(); // ❌ 에러
     

    2. 객체(Object)

    교재 p.145-153 4.2 클래스와 객체 만들기

    1️⃣ 객체란?

    현실 세계의 사물이나 개념을 프로그램 안에서 표현한 “데이터 + 행동의 묶음”
    상태를 가진 모든 것
    객체지향 프로그래밍(OOP)의 가장 기본 개념

    2️⃣ 객체의 구성

    • 상태(State) → 데이터
    • 행위(Behavior) → 기능(메서드)
    객체 = 속성(필드) + 기능(메서드)

    3️⃣ 객체 사용

    Person p = new Person(); p.name = "철수"; p.walk();
    ➡️ . 연산자로 접근

    4️⃣ 비유

    🚗 자동차 객체
    구분
    예
    상태
    색상, 속도, 연료
    행동
    가속(), 브레이크(), 정지()
    class Car { String color; int speed; void accelerate() { speed +=10; } }
    ➡ new Car() 로 생성된 것이 객체

    5️⃣ 클래스 vs 객체 (헷갈림 포인트)

    구분
    클래스(Class)
    객체(Object)
    의미
    설계도
    실체
    예
    붕어빵 틀
    붕어빵
    생성
    안 됨
    됨
    개수
    1개
    여러 개
    Car car1=new Car(); Car car2=new Car();
    ➡️ Car 는 클래스 / car1 , car2 는 객체

    6️⃣ 객체의 4가지 핵심 특징 (OOP)

    1) 캡슐화

    • 데이터 보호
    • 접근 제어 (private)
    private int age;

    2) 상속

    • 기존 객체 확장
    • 부모 클래스 기능 사용

    3) 다형성

    • 같은 메서드, 다른 동작
    Animal a = new Dog();

    4) 추상화

    • 공통 개념만 표현
     

    3. 인스턴스(Instance)

    1️⃣ 인스턴스란?

    클래스를 기반으로 메모리에 실제로 생성된 객체(Object)

    2️⃣ 클래스 · 객체 · 인스턴스 관계

    클래스 (설계도) ↓new 인스턴스 (메모리에 생성) = 객체
    👉 인스턴스 = 객체 (실무/면접에서는 거의 같은 의미)

    3️⃣ 예시

    클래스
    class Person { String name; int age; }
    인스턴스 생성
    Person p1 = new Person(); Person p2 = new Person();
    구분
    설명
    Person
    클래스
    new Person()
    인스턴스 생성
    p1, p2
    서로 다른 인스턴스

    4️⃣ 인스턴스의 특징

    • 메모리에 실제로 존재
    • 클래스당 여러 개 생성 가능
    • 각 인스턴스는 독립된 상태를 가짐
    p1.age =20; p2.age =30;

    5️⃣ 객체 vs 인스턴스 차이 (면접용)

    구분
    객체
    인스턴스
    관점
    개념적
    메모리 관점
    의미
    클래스가 실체화된 것
    메모리에 생성된 객체
    실무
    거의 동일하게 사용
    생성 시점 강조
    👉 “인스턴스”는 생성되었다는 점을 강조

    6️⃣ 인스턴스와 메모리 구조

    • 힙(Heap)에 생성
    • 참조 변수는 스택(Stack)에 저장
    Person p = new Person();
    Stack : p Heap : Person 인스턴스
     

    필기 정리

    notion image
     
    Share article
    Contents
    1. 클래스(Class) 1️⃣ 클래스란?2️⃣ 클래스의 기본 구조3️⃣ 클래스의 구성 요소4️⃣ 클래스와 메모리 구조5️⃣ 클래스 설계 시 주의사항 ⭐6️⃣ 클래스의 종류2. 객체(Object)1️⃣ 객체란?2️⃣ 객체의 구성3️⃣ 객체 사용4️⃣ 비유5️⃣ 클래스 vs 객체 (헷갈림 포인트)6️⃣ 객체의 4가지 핵심 특징 (OOP)3. 인스턴스(Instance)1️⃣ 인스턴스란?2️⃣ 클래스 · 객체 · 인스턴스 관계3️⃣ 예시4️⃣ 인스턴스의 특징5️⃣ 객체 vs 인스턴스 차이 (면접용)6️⃣ 인스턴스와 메모리 구조 필기 정리

    DailyCoding

    RSS·Powered by Inblog