Q : 객체(Object)란 무엇인지 예를 들어서 설명하시오.
A :
객체란, 현실 세계의 사물이나 개념을 프로그램 언어로 나타낸 것을 말합니다.
예를 들어, 자동차 객체는 색상과 모델명과 같은 데이터 속성을 가지고 있으며, 가속과 방향 전환과 같은 동작을 수행할 수 있는 기능을 포함하고 있습니다.
(- 자바에서는 이러한 객체의 속성(Attribute)을 필드(field)라고 하며, 동작을 메소드(method)라고 합니다.)
객체는 모델링을 통해 현실 세계의 개념을 추상화하여 프로그래밍에서 사용할 수 있는 형태로 표현됩니다.
◆ 멤버 필드(field)
Q : 객체지향 프로그래밍(OOP, Object Oriented Programming)이란?
A :
객체지향 프로그래밍에서는 자동차를 하나의 클래스로 정의하고, 클래스를 기반으로 여러 개의 자동차 객체를 생성합니다. 각각의 자동차 객체는 색상과 연식을 저장하는 변수들이 있을 수 있고, 가속과 방향 전환 등의 메서드들이 있을 수 있습니다.
이렇게 객체지향 프로그래밍을 활용하면 자동차에 관련된 여러 기능을 모듈화하여 재사용할 수 있고, 자동차 객체끼리의 상호작용이 자연스럽게 이루어집니다. (또한, 코드의 가독성과 유지보수성이 향상되며, 프로그램의 확장성도 용이해집니다.)
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 :
현실 세계의 객체를 모델링하여 프로그램을 구축하는 방식입니다.
예를 들어, 게임 개발을 위해 객체 지향 언어를 사용해보겠습니다.
게임에는 여러 종류의 캐릭터가 있을 수 있습니다.
이를 객체 지향 언어로 구현한다면, 캐릭터를 하나의 클래스로 정의하고, 이 클래스를 기반으로 다수의 캐릭터 객체를 생성할 수 있습니다.
각 캐릭터 객체는 공격력, 방어력과 체력 등의 속성을 나타내는 변수를 가지고 있고, 이동, 공격, 획복 등의 동작을 수행하는 메서드를 가지고 있습니다.