
Java에서 객체를 생성하는 것은 new 클래스이름(인자) 형태를 사용하며, 이 과정이 생성자(Constructor)를 호출합니다.
💻 예제 코드 1: 축구선수 객체 (Java 버전) ⚽
❓ 문제 (Quiz)
SoccerPlayer 클래스를 Java로 작성하고, 두 명의 선수 객체를 생성하여 행동을 시켜보는 프로그램을 완성하세요.
SoccerPlayer 클래스 작성:
- 필드: name (String), backNumber (int), goalCount (int)
- 생성자: 이름과 등번호를 받아 필드를 설정하고, goalCount는 0으로 초기 설정합니다.
- 메서드:
- scoreGoal(): goalCount 필드를 1 증가시키고 골 성공 메시지를 출력합니다.
- showStats(): 선수의 이름, 등번호, 현재 골 기록을 출력합니다.
💡 정답 (Answer)
1. SoccerPlayer 클래스 정의 (SoccerPlayer.java)
Java
public class SoccerPlayer {
// ⚽️ 필드: 선수의 특징
String name;
int backNumber;
int goalCount; // 기본값 0
// 🌟 생성자: 객체 생성 시 이름과 등번호를 설정합니다.
public SoccerPlayer(String name, int backNumber) {
this.name = name;
this.backNumber = backNumber;
this.goalCount = 0; // 명시적으로 0으로 초기화 (int의 기본값과 동일)
System.out.println("🌟 " + this.name + " 선수 객체가 생성되었습니다! (등번호: " + this.backNumber + ")");
}
// 🥅 메서드: 선수의 행동 (골 넣기)
public void scoreGoal() {
this.goalCount++; // 골 개수를 1 증가
System.out.println("🔥 " + this.name + " 선수가 골을 넣었습니다!");
}
// ℹ️ 메서드: 상태 확인
public void showStats() {
System.out.println("--- " + this.name + " 선수 정보 ---");
System.out.println("등번호: " + this.backNumber);
System.out.println("현재 골 기록: " + this.goalCount + " 골");
System.out.println("--------------------------");
}
}
2. 객체 생성 및 사용 (SoccerMain.java)
Java
public class SoccerMain {
public static void main(String[] args) {
// 1. 🥅 객체 생성 (붕어빵 찍어내기)
// new 키워드와 생성자 호출을 통해 객체를 만듭니다.
SoccerPlayer son = new SoccerPlayer("손흥민", 7);
SoccerPlayer lee = new SoccerPlayer("이강인", 10);
System.out.println();
// 2. 🏃♂️ 객체 사용 (행동 시키기)
System.out.println("=== 🇰🇷 손흥민 선수 활약 ===");
son.scoreGoal(); // 골 넣기 메서드 호출
son.scoreGoal(); // 한 골 더!
son.showStats(); // 상태 확인
System.out.println();
System.out.println("=== 🇰🇷 이강인 선수 활약 ===");
lee.scoreGoal(); // 골 넣기
lee.showStats(); // 상태 확인
// 3. 필드 값 직접 확인 (Java에서는 public 필드에 직접 접근 가능)
System.out.println("⚽️ 최종적으로 " + son.name + " 선수는 " + son.goalCount + " 골을 기록했습니다.");
System.out.println("⚽️ 최종적으로 " + lee.name + " 선수는 " + lee.goalCount + " 골을 기록했습니다.");
}
}
🐕 예제 코드 2: 강아지 클래스 만들기 (Java 버전)
❓ 문제 (Quiz)
Dog 클래스를 Java로 작성하고, 두 마리 강아지 객체를 생성하여 행동을 시키고 정보를 변경해 보세요.
Dog 클래스 작성:
- 필드: name (String), age (int)
- 생성자: 강아지 객체를 만들 때 이름과 나이를 매개변수로 받아 필드를 설정합니다.
- 메서드:
- bark(): 강아지 이름과 함께 "멍! 멍!" 소리를 출력합니다.
- showInfo(): 강아지의 이름과 나이를 출력합니다.
💡 정답 (Answer)
1. Dog 클래스 정의 (Dog.java)
Java
public class Dog {
// 1. ✨ 필드 (Field)
String name;
int age;
// 2. 🛠️ 생성자 (Constructor): 객체 생성 시 이름과 나이를 정해줍니다.
public Dog(String name, int age) {
this.name = name; // 이름 필드 설정
this.age = age; // 나이 필드 설정
System.out.println("새로운 친구 " + this.name + "가 태어났어요! (나이: " + this.age + "살)");
}
// 3. 🏃♂️ 메서드 (Method) - 짖는 행동
public void bark() {
System.out.println("[" + this.name + "]이(가) '멍! 멍!' 하고 짖습니다! 🔊");
}
// 4. ℹ️ 메서드 (Method) - 상태 확인
public void showInfo() {
System.out.println("--- " + this.name + "의 정보 ---");
System.out.println("이름: " + this.name);
System.out.println("나이: " + this.age + "살");
System.out.println("-----------------------");
}
}
2. 객체 생성 및 사용 (DogMain.java)
Java
public class DogMain {
public static void main(String[] args) {
// 1. 🐕 객체 생성 (강아지 입양)
Dog choco = new Dog("초코", 2); // 초코라는 이름의 2살 강아지 객체 생성
Dog latte = new Dog("라떼", 5); // 라떼라는 이름의 5살 강아지 객체 생성
System.out.println();
// 2. 🏃♂️ 객체 사용 (행동 시키기 및 정보 확인)
System.out.println("=== 🤎 초코의 행동 ===");
choco.bark(); // 짖기 메서드 사용
choco.showInfo(); // 정보 확인 메서드 사용
System.out.println();
System.out.println("=== 🤍 라떼의 행동 ===");
latte.bark();
latte.bark(); // 두 번 짖게 시킬 수도 있어요!
latte.showInfo();
System.out.println();
// 3. 필드 값 직접 변경 및 확인
System.out.println("🎉 초코가 생일이 되었어요!");
choco.age = 3; // 초코 객체의 나이 필드를 3으로 직접 변경
System.out.println("새로운 초코 나이: " + choco.age + "살");
}
}
🖼️ Java 객체 생성 핵심 정리
| 과정 | Java 코드 | 의미 |
| 객체 생성 | Dog choco = new Dog("초코", 2); | new 키워드를 사용하여 Dog 설계도로 실제 객체를 만들고, Dog("초코", 2) 생성자를 호출하여 초기값을 설정한 뒤, choco라는 변수에 저장합니다. |
| 메서드 호출 | choco.bark(); | choco 객체에게 bark()라는 행동을 하도록 명령합니다. |
| 필드 접근 | choco.age | choco 객체가 가진 age라는 정보를 읽거나 바꿉니다. |
'Java_language' 카테고리의 다른 글
| 클래스를 활용한 학생 정보 출력 프로그램 (0) | 2025.11.26 |
|---|---|
| 클래스 만들기 연습문제 (0) | 2025.11.26 |
| 클래스 메서드, 생성자 쉽게 이해하기 (0) | 2025.11.26 |
| 객체지향 개념 (클래스, 객체, 인스턴스) (0) | 2025.11.26 |
| 클래스란 무엇일까요? (0) | 2025.11.26 |