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 인스턴스필기 정리

Share article