Backend/Java

스태틱과 인스턴스의 차이점( static VS instance)

개발자의 첫 걸음 2025. 7. 12. 13:30

 

 

 

안녕하세요. 이번에는 자바의 중요한 개념 중 하나인

스태틱(static)인스턴스(instance)의 차이점을 알아볼 거예요.

 

처음에는 혼란이 올 수 있지만,  조금씩 익숙해지면 객체지향 프로그래밍이 훨씬 명확해지니

 

천천히 하나씩 알아볼게요!

 

 

statc

 

스태틱은 클래스가 메모리에 올라갈 때 한 번만 생성되는 친구예요.

 

객체 없이도 사용 가능하고, 모든 객체가 같은 값을 공유해 줘요.

public class MathTool {
    public static int count = 0; // static 변수

    public static void increase() { // static 메서드
        count++;
    }
}

// 사용
MathTool.increase();
MathTool.increase();

System.out.println(MathTool.count); // 2

이렇게 코드화면을 보시면 객체를 만들지 않아도 MathTool.count로 접근 가능하고,

 

모든 호출이 같은 count 값을 공유하는 걸 볼 수 있어요.

 

 

instance

 

인스턴스는 객체를 생성할 때마다 따로 만들어진답니다.

 

각각의 객체가 자기만의 값을 가지고, 사용하려면 객체를 먼저 생성해야 해요!

public class Person {
    String name; // 인스턴스 변수

    public void sayHello() { // 인스턴스 메서드
        System.out.println("Hi, I'm " + name);
    }
}

// 사용
Person p1 = new Person();
p1.name = "Alice";

Person p2 = new Person();
p2.name = "Bob";

p1.sayHello(); // Hi, I'm Alice
p2.sayHello(); // Hi, I'm Bob

코드를 보시면 name은 p1과 p2 각각 따로 가지는 걸 볼 수 있답니다.

 

 

 

간단하게 스태틱과 인스턴스의 차이점을 알아봤는데요.

 

한 줄로 요약을 한다면

 

스태틱은 클래스에 속한 것을 모든 객체가 공유하는 친구

 

인스턴스는 객체에 속한 것을 객체마다 개별 소유할 때 사용해요!

 

 

 

이렇게 알아봤는데요. 비슷한 것 같으면서 전혀 다른 친구들이라는 걸 알아볼 수 있었답니다.