20230719

Moon-Tree·2023년 7월 19일
0

Q : 객체(Object)란 무엇인지 예를 들어서 설명하시오.
A :

  • 객체란, 현실 세계의 사물이나 개념을 프로그램 언어로 나타낸 것을 말합니다.

  • 예를 들어, 자동차 객체는 색상과 모델명과 같은 데이터 속성을 가지고 있으며, 가속과 방향 전환과 같은 동작을 수행할 수 있는 기능을 포함하고 있습니다.
    (- 자바에서는 이러한 객체의 속성(Attribute)을 필드(field)라고 하며, 동작을 메소드(method)라고 합니다.)

  • 객체는 모델링을 통해 현실 세계의 개념을 추상화하여 프로그래밍에서 사용할 수 있는 형태로 표현됩니다.

◆ 멤버 필드(field)

  • 멤버 필드는 다른 말로 멤버 변수, 인스턴스 변수라고도 부릅니다.
  • 말 그대로 인스턴스의 구성 데이터를 저장하는 역할을 수행합니다.

Q : 객체지향 프로그래밍(OOP, Object Oriented Programming)이란?
A :

  • 컴퓨터 프로그래밍 방식 중 하나로, 프로그래밍에서 필요한 데이터를 추상화시켜 상태와 행위를 가진 객체를 만들고 그 객체들 간의 유기적인 상호작용을 통해 로직을 구성하는 프로그래밍 방법입니다.
  • 객체지향 프로그래밍(OOP)이란, 현실 세계의 사물이나 개념을 프로그램의 구성 요소로 모델링하는 것을 말합니다.
  • 예를 들어, 자동차를 객체로 모델링해보겠습니다.
    (자동차 클래스에는 속성으로 색상, 모델, 연식을 저장하는 변수들이 있을 수 있고, 동작으로는 주행을 위한 가속, 감속, 방향 전환 등의 메서드들이 있을 수 있습니다.)

객체지향 프로그래밍에서는 자동차를 하나의 클래스로 정의하고, 클래스를 기반으로 여러 개의 자동차 객체를 생성합니다. 각각의 자동차 객체는 색상과 연식을 저장하는 변수들이 있을 수 있고, 가속과 방향 전환 등의 메서드들이 있을 수 있습니다.

이렇게 객체지향 프로그래밍을 활용하면 자동차에 관련된 여러 기능을 모듈화하여 재사용할 수 있고, 자동차 객체끼리의 상호작용이 자연스럽게 이루어집니다. (또한, 코드의 가독성과 유지보수성이 향상되며, 프로그램의 확장성도 용이해집니다.)

ex)
// 자동차 클래스 정의
class Car {
String color;
int year;

void accelerate() {
    // 가속 로직 구현
}

void changeDirection() {
    // 방향 전환 로직 구현
}

}

// 자동차 객체 생성
Car car1 = new Car();
car1.color = "Red";
car1.year = 2022;

Car car2 = new Car();
car2.color = "Blue";
car2.year = 2020;

// 자동차 객체의 메서드 호출
car1.accelerate();
car2.changeDirection();

◆ 모델링

  • 모델링은 현실 세계의 객체를 속성과 동작으로 추상화하여 소프트웨어 객체의 필드와 메소드로 정의하는 과정을 말합니다.
    (이를 통해 현실 세계의 개념과 동작을 소프트웨어적으로 표현하고 구현할 수 있습니다.)

Q : 객체 지향 언어에 대하여 설명하시오.
A :

  • 현실 세계의 객체를 모델링하여 프로그램을 구축하는 방식입니다.

  • 예를 들어, 게임 개발을 위해 객체 지향 언어를 사용해보겠습니다.
    게임에는 여러 종류의 캐릭터가 있을 수 있습니다.
    이를 객체 지향 언어로 구현한다면, 캐릭터를 하나의 클래스로 정의하고, 이 클래스를 기반으로 다수의 캐릭터 객체를 생성할 수 있습니다.
    각 캐릭터 객체는 공격력, 방어력과 체력 등의 속성을 나타내는 변수를 가지고 있고, 이동, 공격, 획복 등의 동작을 수행하는 메서드를 가지고 있습니다.

profile
Backend Developer

0개의 댓글