
🍪 클래스란 무엇일까요? (설계도, 틀)
자바에서 클래스는 뭔가 만들 때 쓰는 '설계도'나 '틀'이라고 생각하면 이해하기 쉬워요.
예를 들어, 친구들과 함께 가지고 놀 '쿠키'를 만들고 싶다고 생각해 보세요.
- 쿠키 틀 (클래스): 쿠키를 찍어내는 '쿠키 틀'이 바로 클래스예요. 이 틀에는 "쿠키는 동그랗다", "쿠키의 색깔은 갈색이다", "쿠키는 먹을 수 있다" 같은 정보와 기능이 정해져 있죠. 이 틀 자체로는 먹을 수 없지만, 이 틀을 이용해서 수많은 쿠키를 만들 수 있어요.
- 클래스 역할: 컴퓨터 프로그램에게 "이런 모양과 특징을 가진 것을 만들어야 해!"라고 알려주는 정의나 설계도의 역할을 합니다.
🤖 클래스 예제: '강아지' 클래스 만들기
우리가 '강아지'라는 클래스를 만들어 본다고 가정해 봅시다.
1. 강아지 클래스 설계도 (Class)
이 설계도에는 모든 강아지가 가질 수 있는 공통적인 특징(속성)과 행동(기능)을 적어 넣어요.
| 종류 | 컴퓨터 용어 | 예시 (강아지) |
| 특징 | 속성 (변수) | 이름 (name), 색깔 (color), 나이 (age) |
| 행동 | 기능 (메소드) | 짖기 (bark), 꼬리 흔들기 (wagTail), 자기 (sleep) |
2. 자바 코드 예제
Java
// '강아지' 설계도(클래스)를 만듭니다.
class Dog {
// 🐾 속성 (강아지의 특징): 모든 강아지가 가질 수 있는 특징이에요.
String name; // 이름
String color; // 색깔
int age; // 나이
// 🔊 기능 (강아지의 행동): 모든 강아지가 할 수 있는 행동이에요.
void bark() {
System.out.println(name + "가 '멍멍!' 하고 짖습니다.");
}
void wagTail() {
System.out.println(name + "가 꼬리를 흔듭니다.");
}
}
3. 클래스를 사용해서 강아지 만들기
이제 이 설계도를 이용해서 실제로 강아지들을 만들어 봅시다!
Java
// 이 부분이 클래스를 사용하는 부분입니다.
public class PuppyHouse {
public static void main(String[] args) {
// 1. 설계도(Dog 클래스)를 이용해서 '첫 번째 강아지'를 만듭니다.
Dog puppy1 = new Dog(); // 'puppy1'이라는 강아지 한 마리를 새로 만듭니다.
// 2. 이 강아지의 특징(속성)을 정해 줍니다.
puppy1.name = "초코";
puppy1.color = "갈색";
puppy1.age = 1;
// 3. 이 강아지에게 행동(기능)을 시켜 봅니다.
System.out.println("첫 번째 강아지 이름: " + puppy1.name);
puppy1.bark(); // 출력: 초코가 '멍멍!' 하고 짖습니다.
System.out.println("---");
// 4. 설계도(Dog 클래스)를 이용해서 '두 번째 강아지'를 또 만듭니다.
Dog puppy2 = new Dog(); // 'puppy2'라는 다른 강아지 한 마리를 새로 만듭니다.
// 5. 이 강아지의 특징은 다르게 정해 줍니다.
puppy2.name = "흰둥이";
puppy2.color = "흰색";
puppy2.age = 3;
// 6. 두 번째 강아지에게 행동을 시킵니다.
System.out.println("두 번째 강아지 이름: " + puppy2.name);
puppy2.wagTail(); // 출력: 흰둥이가 꼬리를 흔듭니다.
}
}
🧐 헷갈리는 4가지 단어 설명
클래스를 배울 때 클래스, 객체, 오브젝트, 인스턴스 네 단어가 비슷해서 헷갈릴 수 있어요. 아까의 쿠키 틀 예시로 설명해 드릴게요!
1. 클래스 (Class) - 🍪 쿠키 틀 (설계도)
- 의미: 무언가를 만들기 위한 정의나 설계도예요.
- 특징: 메모리 공간을 차지하지 않아요. 틀 자체로는 쿠키를 먹을 수 없죠.
- 예시: Dog (강아지 설계도)
2. 객체 (Object) & 오브젝트 (Object) - 🍪 막연한 쿠키 (만들어진 것)
- 의미: 설계도(클래스)에 따라 만들어진 모든 것을 통틀어 부르는 가장 일반적인 이름이에요. '물건'이라는 뜻과 같아요.
- 특징: 자바에서는 클래스에 의해 만들어져 메모리에 올라간 모든 것을 객체 또는 오브젝트라고 부릅니다.
- 예시: '만들어진 강아지' (초코, 흰둥이...를 통틀어서)
3. 인스턴스 (Instance) - 🍪 특정 쿠키 (실제로 만들어진 것)
- 의미: 클래스(설계도)를 바탕으로 실제로 컴퓨터 메모리 안에 '만들어진 실체'를 말해요.
- 특징: 특정한 클래스와 짝지어서 부릅니다.
- 예시:
- puppy1은 Dog 클래스의 인스턴스입니다.
- puppy2는 Dog 클래스의 인스턴스입니다.
🌟 정리: 객체와 인스턴스
객체는 "만들어진 것"을 가리키는 더 넓은 이름이고,
인스턴스는 "만들어진 것" 중에서도 "어떤 설계도로 만들었는지"를 강조할 때 쓰는 이름이라고 생각하면 됩니다.
| 단어 | 비유 | 설명 |
| 클래스 | 쿠키 틀 | 정의, 설계도, 만드는 방법 |
| 객체 | 쿠키 | 만들어진 것(실체)을 부르는 일반적인 이름 |
| 인스턴스 | 초코 맛 쿠키 | 클래스를 바탕으로 실제 만들어진 특정한 실체 |
'Java_language' 카테고리의 다른 글
| 클래스 메서드, 생성자 쉽게 이해하기 (0) | 2025.11.26 |
|---|---|
| 객체지향 개념 (클래스, 객체, 인스턴스) (0) | 2025.11.26 |
| 정렬, 버블정렬 알고리즘 Bubble Sort (0) | 2025.11.24 |
| 최대값 (Maximum) 반환 메서드 (0) | 2025.11.24 |
| Java Example of implementing the four arithmetic operation method (0) | 2025.11.24 |