
🧑🎓 학생 정보 출력 프로그램 (Java 버전)
이 예제는 Java에서 클래스(Class)를 정의하고 객체(Object)를 생성하며, 필드(Field)와 메서드(Method)를 사용하는 기본적인 방법을 익히는 데 중점을 둡니다.
❓ 문제 (Quiz)
다음 요구사항에 따라 Student 클래스를 작성하고, 이를 사용하여 학생 명단을 관리하는 프로그램을 만들어 보세요.
Student 클래스 작성:
- 필드(맴버 변수): name (문자열), grade (정수), score (정수)
- 생성자: 학생의 이름(name)과 학년(grade)을 매개변수로 받아 필드를 설정합니다. 점수(score)는 처음 0점으로 설정합니다.
- 메서드:
- setScore(int newScore): 점수를 설정합니다.
- showInfo(): 학생의 이름, 학년, 점수를 깔끔하게 출력합니다.
프로그램 작성 (객체 사용):
- Student 클래스를 사용하여 "김철수(4학년)"와 "박영희(6학년)" 두 명의 객체를 생성하세요.
- 각각 철수는 85점, 영희는 92점으로 점수를 설정하세요.
- 두 학생의 정보를 순서대로 모두 출력하는 프로그램을 완성하세요.
💡 정답 (Answer)
1. Student 클래스 정의 (Student.java)
Java
public class Student {
// 🛠️ 필드(맴버 변수): 학생이 가진 속성
String name;
int grade;
int score; // 점수는 0으로 초기화됩니다 (int 기본값)
// 🌟 생성자: 객체 생성 시 이름과 학년을 설정합니다.
public Student(String name, int grade) {
this.name = name; // 전달받은 name을 필드 name에 설정
this.grade = grade; // 전달받은 grade를 필드 grade에 설정
this.score = 0; // 점수는 0으로 초기 시작
}
// 📝 메서드: 점수를 업데이트하는 기능
public void setScore(int newScore) {
this.score = newScore;
}
// ℹ️ 메서드: 정보를 출력하는 기능
public void showInfo() {
System.out.println("--------------------");
System.out.println("🧑🎓 이름: " + this.name);
System.out.println("🏫 학년: " + this.grade + "학년");
System.out.println("💯 점수: " + this.score + "점");
System.out.println("--------------------");
}
}
2. 학생 정보 출력 프로그램 실행 (StudentInfoMain.java)
Java
public class StudentInfoMain {
public static void main(String[] args) {
// 1. 🐣 학생 객체 2명 생성 (생성자 호출)
Student chulsoo = new Student("김철수", 4);
Student younghee = new Student("박영희", 6);
System.out.println("--- 📝 점수 설정 중 ---");
// 2. 📝 메서드를 사용해 점수 설정
chulsoo.setScore(85);
younghee.setScore(92);
System.out.println("점수 설정 완료\n");
// 3. 🖥️ 학생 정보 출력 프로그램 (메서드 사용)
System.out.println("--- 📚 전체 학생 정보 출력 ---");
chulsoo.showInfo();
younghee.showInfo();
}
}
실행 결과
--- 📝 점수 설정 중 ---
점수 설정 완료
--- 📚 전체 학생 정보 출력 ---
--------------------
🧑🎓 이름: 김철수
🏫 학년: 4학년
💯 점수: 85점
--------------------
--------------------
🧑🎓 이름: 박영희
🏫 학년: 6학년
💯 점수: 92점
--------------------
🚗 자동차 공장 프로그램 (Java 버전)
이 예제는 Java 클래스의 상태(필드)를 메서드(Method)를 통해 변경하는 객체 지향의 기본 개념을 연습하는 데 좋습니다.
❓ 문제 (Quiz)
다음 요구사항에 따라 Car 클래스를 작성하고, 이를 사용하여 자동차를 관리하는 프로그램을 만들어 보세요.
Car 클래스 작성:
- 필드: color (문자열), maxSpeed (정수), isRunning (논리값)
- 생성자: 자동차 객체를 만들 때, 색상(color)과 최고 속도(maxSpeed)를 매개변수로 받아 필드를 설정합니다. 현재 상태(isRunning) 필드는 false (정지 상태)로 초기 설정합니다.
- 메서드:
- start(): 자동차의 isRunning 필드를 true로 바꾸고 "[색상]색 자동차] 부릉부릉 시동을 걸고 출발합니다! 💨"를 출력합니다.
- stop(): 자동차의 isRunning 필드를 false로 바꾸고 "[색상]색 자동차]가 멈췄습니다. 🛑"를 출력합니다.
- showStatus(): 현재 색상과 주행 상태를 출력하여 보여주는 기능.
프로그램 작성 (객체 사용):
- Car 클래스를 사용하여 빨간색(300km/h)과 파란색(150km/h) 자동차 두 대의 객체를 생성하세요.
- 빨간색 자동차는 start() 메서드를 호출하여 출발시키고, 파란색 자동차는 정지 상태를 유지합니다.
- 두 자동차의 상태를 순서대로 모두 출력하는 프로그램을 완성하세요.
💡 정답 (Answer)
1. Car 클래스 정의 (Car.java)
Java
public class Car {
// 🛠️ 필드(맴버 변수): 자동차의 속성
String color;
int maxSpeed;
boolean isRunning; // 기본값은 false (정지 상태)
// 🌟 생성자: 객체 생성 시 색상과 최고 속도를 설정합니다.
public Car(String color, int maxSpeed) {
this.color = color;
this.maxSpeed = maxSpeed;
this.isRunning = false; // 명시적으로 정지 상태로 초기화
System.out.println("✅ " + this.color + "색 자동차가 공장에서 출고되었습니다. (최고 속도: " + this.maxSpeed + " km/h)");
}
// 🏃♂️ 메서드: 출발 기능
public void start() {
this.isRunning = true;
System.out.println("[" + this.color + "색 자동차] 부릉부릉 시동을 걸고 출발합니다! 💨");
}
// 🛑 메서드: 정지 기능
public void stop() {
this.isRunning = false;
System.out.println("[" + this.color + "색 자동차]가 멈췄습니다. 🛑");
}
// ℹ️ 메서드: 현재 상태를 보여주는 기능
public void showStatus() {
String status = this.isRunning ? "주행 중" : "정지 상태";
System.out.println("--------------------");
System.out.println("🚘 색상: " + this.color);
System.out.println("🚦 상태: " + status + "");
System.out.println("--------------------");
}
}
2. 자동차 공장 프로그램 실행 (CarFactoryMain.java)
Java
public class CarFactoryMain {
public static void main(String[] args) {
// 1. 🐣 자동차 객체 2대 생성 (생성자 호출)
Car redCar = new Car("빨강", 300);
Car blueCar = new Car("파랑", 150);
System.out.println("\n");
// 2. 🚦 객체 사용: 빨간 차는 출발
System.out.println("--- 🏁 빨간 자동차 출발 ---");
redCar.start(); // 빨간 차 출발 메서드 호출
// blueCar.stop(); // 파란 차는 이미 정지 상태(false)이므로 호출 불필요
System.out.println("\n");
// 3. 🖥️ 자동차 상태 출력 프로그램
System.out.println("--- ℹ️ 두 자동차의 현재 상태 확인 ---");
redCar.showStatus();
blueCar.showStatus();
}
}
실행 결과
✅ 빨강색 자동차가 공장에서 출고되었습니다. (최고 속도: 300 km/h)
✅ 파랑색 자동차가 공장에서 출고되었습니다. (최고 속도: 150 km/h)
--- 🏁 빨간 자동차 출발 ---
[빨강색 자동차] 부릉부릉 시동을 걸고 출발합니다! 💨
--- ℹ️ 두 자동차의 현재 상태 확인 ---
--------------------
🚘 색상: 빨강
🚦 상태: 주행 중
--------------------
--------------------
🚘 색상: 파랑
🚦 상태: 정지 상태
--------------------
두 예제 모두 클래스 기반 객체 지향 프로그래밍의 핵심 원리를 Java로 구현한 것입니다.
'Java_language' 카테고리의 다른 글
| 자바 접근제어자(Access Modifier) (0) | 2025.12.01 |
|---|---|
| BankAccount 클래스 (0) | 2025.11.27 |
| 클래스 만들기 연습문제 (0) | 2025.11.26 |
| 클래스의 객체 생성 및 사용 (0) | 2025.11.26 |
| 클래스 메서드, 생성자 쉽게 이해하기 (0) | 2025.11.26 |