🎬 상상해봐
너는 "드래곤" 객체를 만들고 싶어.
드래곤은 이름과 체력이 있어야 해.
이전에는 이렇게 수동으로 정보를 넣었지?
java
복사편집
Dragon dragon1 = new Dragon(); dragon1.name = "불사조"; dragon1.hp = 500;
그런데 이걸 자동으로 처리하려면 어떻게 해야 할까?
바로 생성자가 등장한다!
🧙♂️ 1. 생성자란?
생성자는 객체가 생성될 때 자동으로 호출되는 특수한 메서드야.
객체가 만들어지는 순간, 초기값을 자동으로 설정해줄 수 있어!
public class Dragon {
String name;
int hp; // 생성자
public Dragon(String n, int h) {
name = n;
hp = h;
}
}
🔑 생성자는 클래스 이름과 똑같아야 해!
- Dragon(String n, int h) → 이 생성자는 이름과 체력을 자동으로 초기화해줌!
🏗️ 2. 생성자를 이용한 객체 만들기
public class Main {
public static void main(String[] args) {
// 생성자를 통해 바로 초기값을 설정
Dragon dragon1 = new Dragon("불사조", 500);
System.out.println(dragon1.name + "의 체력: " + dragon1.hp); // 불사조의 체력: 500
}
}
생성자 덕분에 이제 객체를 만들 때, 한 번에 값이 들어가!
🧩 3. 생성자 여러 개 만들기 (오버로딩)
생성자는 하나만 만들 수 있는 게 아니야!
같은 이름의 생성자를 여러 개 만들 수 있는데,
그걸 생성자 오버로딩이라고 해.
public class Dragon {
String name;
int hp;
// 첫 번째 생성자
public Dragon(String n) {
name = n;
hp = 100; // 기본 체력
}
// 두 번째 생성자
public Dragon(String n, int h) {
name = n;
hp = h;
}
}
생성자 오버로딩을 이용하면, 다양한 방법으로 객체를 초기화할 수 있어!
Dragon dragon1 = new Dragon("불사조", 500); // 이름과 체력
Dragon dragon2 = new Dragon("용", 300); // 이름과 체력
Dragon dragon3 = new Dragon("불사조"); // 기본 체력 100
💡 4. 생성자와 this
this는 객체 자신을 가리키는 키워드야.
자기 자신을 가리켜서 같은 이름의 변수와 구분할 때 쓰는 거지.
public class Dragon {
String name;
int hp;
// 생성자
public Dragon(String name, int hp) {
this.name = name; // this로 구분
this.hp = hp;
}
}
this.name은 현재 객체의 name을 의미하고,
매개변수로 들어온 name은 지역 변수니까 구분이 필요해!
🧠 정리 타임
개념의미예시
생성자 | 객체가 생성될 때 자동으로 호출되는 메서드 | public Dragon(String name, int hp) |
오버로딩 | 같은 이름의 생성자를 여러 개 만들기 | public Dragon(String name) / public Dragon(String name, int hp) |
this | 객체 자신을 가리키는 키워드 | this.name = name; |
🎮 실전 미션 – 캐릭터 생성
public class Hero {
String name;
int level;
// 생성자
public Hero(String n, int l) {
name = n;
level = l;
}
void attack() {
System.out.println(name + "이(가) 공격했다!");
}
}
public class Main {
public static void main(String[] args) {
Hero hero1 = new Hero("철수", 10);
Hero hero2 = new Hero("영희", 8);
hero1.attack(); // 철수가 공격했다!
hero2.attack(); // 영희가 공격했다!
}
}
✨ 마무리 요약
생성자는 객체가 탄생할 때 자동으로 초기화해주는 마법의 주문이야.
이제 객체가 만들어지는 순간부터 필요한 정보를 자유롭게 넣을 수 있게 되었어!
다음 10단원에서는 상속을 배워볼 거야.
이건 마치 기존 캐릭터를 확장하거나, 새로운 능력을 추가하는 기술이야.
기초부터 조금씩 확장되는 걸 배우면서 점점 더 강력한 캐릭터를 만들 수 있어!
'IT > java 코딩 기초' 카테고리의 다른 글
1️⃣1️⃣ 인터페이스 – 행동의 규칙을 정의하자! 🔑💡 (0) | 2025.04.14 |
---|---|
🔟 상속 – 새로운 능력을 추가하자! 🦸♂️💥 (0) | 2025.04.14 |
8️⃣ 클래스와 객체 – 코드로 생명체를 만들자! 🧬🚀 (0) | 2025.04.14 |
7️⃣ 메서드 – 나만의 명령어를 만들자! ⚙️🧙♂️ (0) | 2025.04.14 |
6️⃣ 배열 – 정보를 줄 세워 다루는 기술! 📦📦📦 (0) | 2025.04.14 |