public class Armor {
// 🔹 필드(멤버 변수)
String name;
int power;
// 🔹 생성자 (Constructor)
public Armor(String name, int power) {
this.name = name;
this.power = power;
}
// 🔹 toString() 오버라이드 – 객체 정보 출력용
@Override public String toString() {
return "Armor{name='" + name + "', power=" + power + "}";
}
}
요소
설명
필드
클래스 안에 선언되는 변수, 자동 초기화 (문자열은 null, 숫자는 0)
생성자
객체 생성 시 호출되는 특수한 메서드, 필드를 초기화
toString()
객체를 System.out.println() 할 때 자동 호출되는 메서드
📌 2. main 메서드에서 객체 생성 및 출력
public class ArmorTest {
public static void main(String[] args) {
// 🔹 객체 생성 (인스턴스화)
Armor suit1 = new Armor("Iron Armor", 100);
// 🔹 객체 정보 출력
System.out.println(suit1); // 자동으로 toString() 호출됨
}
}
개념
설명
new Armor(...)
인스턴스를 생성, heap 메모리에 객체 생성
suit1
참조변수, stack에 저장됨
System.out.println(suit1)
toString() 메서드가 자동 호출되어 객체 상태 출력
📌 초보자가 자주 실수하는 포인트
실수
해결 방법
필드 선언만 하고 생성자를 안 씀
생성자를 직접 만들어 필드 초기화
toString() 미작성 → 주소값 출력
반드시 @Override toString() 작성
필드 접근 시 getter 안 씀
이클립스 자동 생성 활용 (Source > Generate Getters/Setters)
main에서 객체만 만들고 출력 안 함
System.out.println(객체명)으로 확인 필수
🔧 이클립스 팁
Alt + Shift + S → Generate Getters and Setters
Alt + Shift + S → Generate Constructor using Fields
Source > Override/Implement Methods → toString() 쉽게 추가