본문 바로가기
Java_language

클래스란 무엇일까요?

by 헬로제이콥 2025. 11. 26.

 

🍪 클래스란 무엇일까요? (설계도, 틀)

자바에서 클래스는 뭔가 만들 때 쓰는 '설계도'나 '틀'이라고 생각하면 이해하기 쉬워요.

예를 들어, 친구들과 함께 가지고 놀 '쿠키'를 만들고 싶다고 생각해 보세요.

  1. 쿠키 틀 (클래스): 쿠키를 찍어내는 '쿠키 틀'이 바로 클래스예요. 이 틀에는 "쿠키는 동그랗다", "쿠키의 색깔은 갈색이다", "쿠키는 먹을 수 있다" 같은 정보와 기능이 정해져 있죠. 이 틀 자체로는 먹을 수 없지만, 이 틀을 이용해서 수많은 쿠키를 만들 수 있어요.
  2. 클래스 역할: 컴퓨터 프로그램에게 "이런 모양과 특징을 가진 것을 만들어야 해!"라고 알려주는 정의설계도의 역할을 합니다.

🤖 클래스 예제: '강아지' 클래스 만들기

우리가 '강아지'라는 클래스를 만들어 본다고 가정해 봅시다.

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 클래스의 인스턴스입니다.

🌟 정리: 객체와 인스턴스

객체는 "만들어진 것"을 가리키는 더 넓은 이름이고,

인스턴스는 "만들어진 것" 중에서도 "어떤 설계도로 만들었는지"를 강조할 때 쓰는 이름이라고 생각하면 됩니다.

단어 비유 설명
클래스 쿠키 틀 정의, 설계도, 만드는 방법
객체 쿠키 만들어진 것(실체)을 부르는 일반적인 이름
인스턴스 초코 맛 쿠키 클래스를 바탕으로 실제 만들어진 특정한 실체