본문 바로가기

프로그래밍

수아에게: 객체 지향 프로그래밍 c, java, python

오늘은 객체 지향 프로그래밍(OOP)의 실제에 대해 이야기해볼게. OOP는 프로그램을 객체라는 단위로 나누어 설계하는 방법이야. 이를 통해 코드의 재사용성과 유지보수성을 높일 수 있어. 이번에는 클래스와 구조체를 활용한 예제 프로젝트를 통해 OOP 개념을 실제 문제에 적용해보자.

1. 클래스와 구조체를 활용한 예제 프로젝트

C 언어에서는 클래스가 없으므로 구조체를 이용했어. 구조체는 데이터를 그룹화하는 데 사용되며, 클래스와는 다르다는 점을 참고해!

C 언어 예제 (구조체 사용)

#include <stdio.h>

// 학생 정보를 저장하기 위한 구조체 정의
struct Student {
    char name[50]; // 학생 이름
    int age;       // 학생 나이
    float grade;   // 학생 성적
};

// 학생 정보를 출력하는 함수
void printStudent(struct Student s) {
    printf("이름: %s, 나이: %d, 성적: %.2f\n", s.name, s.age, s.grade);
}

int main() {
    struct Student student1 = {"홍길동", 20, 85.5}; // 구조체 변수 선언 및 초기화
    printStudent(student1); // 학생 정보 출력
    return 0;
}


Java 예제 (클래스 사용)

// 학생 정보를 저장하기 위한 클래스 정의
class Student {
    String name; // 학생 이름
    int age;     // 학생 나이
    double grade; // 학생 성적

    // 생성자: 학생 정보를 초기화
    Student(String name, int age, double grade) {
        this.name = name;
        this.age = age;
        this.grade = grade;
    }

    // 학생 정보를 출력하는 메서드
    void printInfo() {
        System.out.println("이름: " + name + ", 나이: " + age + ", 성적: " + grade);
    }
}

public class Main {
    public static void main(String[] args) {
        Student student1 = new Student("홍길동", 20, 85.5); // 학생 객체 생성
        student1.printInfo(); // 학생 정보 출력
    }
}

 

Python 예제 (클래스 사용)

# 학생 정보를 저장하기 위한 클래스 정의
class Student:
    def __init__(self, name, age, grade):
        self.name = name  # 학생 이름
        self.age = age    # 학생 나이
        self.grade = grade # 학생 성적
    
    # 학생 정보를 출력하는 메서드
    def print_info(self):
        print(f"이름: {self.name}, 나이: {self.age}, 성적: {self.grade}")

student1 = Student("홍길동", 20, 85.5) # 학생 객체 생성
student1.print_info()  # 학생 정보 출력


2. 객체 지향 개념을 실제 문제에 적용하기

이 예제에서는 학생 정보를 저장하고 출력하는 간단한 시스템을 만들었어. 각 언어에서 클래스와 구조체를 활용하여 학생의 이름, 나이, 성적을 저장하는 방법을 보여줬지. 이렇게 객체 지향 프로그래밍을 사용하면 각 객체(여기서는 학생)를 독립적으로 다룰 수 있어.

앞으로도 OOP 개념을 다른 프로젝트에 적용해보면 좋겠어. 질문이 있으면 언제든지 물어봐! 

사랑해!