클래스 vs 인스턴스 — 실습 / 약 10분
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 (변경 안 됨)
}
}
$ javac TestInstance.java
$ java TestInstance
Alice, 25
Bob, 30
---
26
30
== 함정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() 를 씁니다 — 다음 단계 학습에서 자세히. 지금은 「== 는 같은 인스턴스인지를 본다」 정도만.