반응형
객체(Object)

C++에서 객체는 클래스의 인스턴스입니다. 클래스는 객체를 생성하기 위한 템플릿이며,

객체는 클래스의 실제 구현체입니다. 클래스는 객체의 동작과 상태를 정의하는데 사용된다.

 

객체는 데이터와 해당 데이터를 조작하는 멤버함수(메서드)를 포함한다.

데이터는 객체의 상태를 나타내는 멤버 변수로서, 객체의 정보를 저장한다.

멤버 함수는 객체의 동작을 정의하고 해당 데이터를 조작하는 로직을 포함한다.

 

 

 

객체의 특징

1. 캡슐화(Encapsulation) :

객체는 데이터와 해당 데이터를 조작하는 동작(메서드)을 하나의 단위로 묶어 캡슐화하여

기능들을 쉽게 사용할 수 있게 해준다.캡슐화를 통해 객체 내부의 데이터와 동작을 외부에서의

직접적인 접근을 제한시킬 수 있으며, 외부에서는 객체의 메서드를 통해 데이터에 접근하고

조작할 수 있지만, 내부의 구체적인 구현은 감추어진다. 이는 정보 은닉(Information Hiding)이라고도 한다.

객체의 내부 상태를 캡슐화함으로써 데이터의 무결성을 보장하게 된다.

 

 

2. 상속성(Inheritance) : 

객체는 상속을 통해 다른 객체로부터 속성과 동작을 상속받을 수 있다.

상속은 기존의 클래스를 기반으로 새로운 클래스를 생성하고, 기존 클래스의 특성을

그대로 이어받아 새로운 클래스를 확장하는 기능이다. 상속을 통해 코드의 재사용성을 높이고

클래스 간의 계층 구조를 형성하여 객체를 보다 쉽게 구조화할 수 있다.

 

3. 다형성(Polymorphism) : 

다형성은 객체가 여러 가지 형태를 가질 수 있는 능력을 말한다.

동일한 메서드 이름을 사용하지만, 서로 다른 객체에 대해 다른 동작을

수행할 수 있다. 이는 오버로딩(Overloading)과 오버라이딩(Overriding)을

통해 구현된다. 다형성을 통해 여러 객체를 하나의 일반화된

타입으로 다룰 수 있으며,  이는 코드의 유연성과 확장성을 높이는데 도움을 준다.

 

4. 추상화(Abstraction) : 

객체는 복잡한 시스템을 단순화하여 필요한 부분만 추상화하여 표현할 수 있다.

필수적인 특성과 동작에만 초점을 맞추고 불필요한 세부사항을 숨기는 것이다.

이를 통해 객체는 필요한 정보와 동작에만 집중할 수 있도록 도와준다.

 

5. 메시지 패싱(Message Passing) : 

객체는 다른 객체와 메시지(정보)를 주고받을 수 있다.

객체는 메시지를 전달받으면 해당하는 동작을 수행하거나 다른 객체에게 메시지를

전달할 수 있습니다. 이를 통해 객체 간의 상호작용과 정보 교환을 가능하게 한다.

이러한 상호작용은 객체 간의 결합도를 낮추고 모듈화를 촉짐함으로

코드의 유연성과 재사용성을 높인다.

 

 

 

객체 지향 프로그래밍

C++에서 객체는 다른 객체로부터 상속을 받을 수 있으며, 다형성과 같은 객체지향

프로그래밍의 개념을 지원해준다. 객체 지향 프로그래밍은 프로그램들을 객체들의

집합으로 모델링하여 문제를 해결하는 방법이다. 객체지향 프로그래밍을 사용하면

코드의 재사용성, 유지보수성, 확장성(추가, 삭제) 등을 향상시킬 수 있다.

 

반응형

 

반응형

'C++' 카테고리의 다른 글

네임스페이스(namespace)  (0) 2023.05.30
입출력  (0) 2023.05.30
제네릭 프로그래밍  (0) 2023.05.30
함수 오버로딩(Function Overloading) & 함수 오버라이딩(Function Overriding)  (0) 2023.05.30
구조체  (0) 2023.05.30

+ Recent posts