▣ LAB · SPRING

인스턴스 여러 개 만들어보기

클래스 vs 인스턴스 — 실습 / 약 10분

📍 지금 어디를 만지고 있나요?
브라우저
Tomcat
JVM 메모리
Controller
DB

사전 준비

1
User 클래스 작성
class User {
    String name;
    int age;
    User(String name, int age) {
        this.name = name;
        this.age = age;
    }
}

public class TestInstance {
    public static void main(String[] args) {
        User u1 = new User("Alice", 25);
        User u2 = new User("Bob", 30);

        System.out.println(u1.name + ", " + u1.age);
        System.out.println(u2.name + ", " + u2.age);

        u1.age = 26;  // u1 만 변경
        System.out.println("---");
        System.out.println(u1.age);  // 26
        System.out.println(u2.age);  // 30 (변경 안 됨)
    }
}
2
컴파일·실행
$ javac TestInstance.java
$ java TestInstance
Alice, 25
Bob, 30
---
26
30
CHECKPOINT
  • u1 의 age 만 바꿨는데 u2 가 영향 안 받는 이유는? (정답: 각자 독립된 인스턴스)
  • 한 클래스에서 인스턴스 수십 개를 만들 수 있을까요? (정답: 가능. 메모리만 충분하면)
3
인스턴스 비교 — == 함정
User u3 = new User("Alice", 25);
User u4 = new User("Alice", 25);
System.out.println(u3 == u4);   // false! (다른 객체)
System.out.println(u3.name == u4.name);  // 보통 true (String 풀)
미리 알아둘 것

객체 비교는 == 가 아니라 .equals() 를 씁니다 — 다음 단계 학습에서 자세히. 지금은 「== 는 같은 인스턴스인지를 본다」 정도만.

실습 완료 체크리스트

인스턴스 두 개를 만들고 각자 다른 데이터를 가짐을 확인
한 인스턴스의 필드 변경이 다른 인스턴스에 영향 없음을 확인
같은 데이터로 만들어도 인스턴스는 다르다는 사실을 안다