본문 바로가기
Java_language

클래스를 활용한 학생 정보 출력 프로그램

by 헬로제이콥 2025. 11. 26.

🧑‍🎓 학생 정보 출력 프로그램 (Java 버전)

이 예제는 Java에서 클래스(Class)를 정의하고 객체(Object)를 생성하며, 필드(Field)와 메서드(Method)를 사용하는 기본적인 방법을 익히는 데 중점을 둡니다.


❓ 문제 (Quiz)

다음 요구사항에 따라 Student 클래스를 작성하고, 이를 사용하여 학생 명단을 관리하는 프로그램을 만들어 보세요.

Student 클래스 작성:

  • 필드(맴버 변수): name (문자열), grade (정수), score (정수)
  • 생성자: 학생의 이름(name)과 학년(grade)을 매개변수로 받아 필드를 설정합니다. 점수(score)는 처음 0점으로 설정합니다.
  • 메서드:
    • setScore(int newScore): 점수를 설정합니다.
    • showInfo(): 학생의 이름, 학년, 점수를 깔끔하게 출력합니다.

프로그램 작성 (객체 사용):

  1. Student 클래스를 사용하여 "김철수(4학년)"와 "박영희(6학년)" 두 명의 객체를 생성하세요.
  2. 각각 철수는 85점, 영희는 92점으로 점수를 설정하세요.
  3. 두 학생의 정보를 순서대로 모두 출력하는 프로그램을 완성하세요.

💡 정답 (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(): 현재 색상주행 상태를 출력하여 보여주는 기능.

프로그램 작성 (객체 사용):

  1. Car 클래스를 사용하여 빨간색(300km/h)과 파란색(150km/h) 자동차 두 대의 객체를 생성하세요.
  2. 빨간색 자동차는 start() 메서드를 호출하여 출발시키고, 파란색 자동차는 정지 상태를 유지합니다.
  3. 두 자동차의 상태를 순서대로 모두 출력하는 프로그램을 완성하세요.

💡 정답 (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로 구현한 것입니다.