joo_coding 2025. 5. 10. 19:40

객체란? 기능(함수)과 속성(데이터)을 갖고있는 것

 

객체지향 프로그래밍(OOP) - Objected oriendted Programming

1. 추상화

2. 캡슐화(데이터 은닉)

3. 다형

4. 상속

5. 코드 재활용

 

이러한 OOP의 기능을 사용하는데 가장 중요한 도구는 클래스(class) 이다.

클래스는 객체를 만드는 설계도이다.

클래스는 int,char와 같이 자료형으로 사용된다.

 

내가 Car 라는 클래스(설계도)를 만들었고

이 클래스로 Car1, Car2 라는 객체(인스턴스)를 만들었다.

Car1과 Car2의 연식,시리얼넘버,주행속도(데이터)는 다르지만

엑셀밟기,시동걸기 등의 기능(메서드)는 동일하게 갖고있다.

 

클래스로 만들어진 객체를 인스턴스라고 한다.

인스턴스는 멤버변수와 멤버함수로 이루어져있다.

 

멤버변수는 각각 독립된 메모리를 가지지만 멤버함수는 모든 인스턴스가 공유한다.

 

그래서 각각의 인스턴스가 똑같은 메서드를 사용하기 때문에
자신을 구분해야하니 자기 자신을 가리키는 this 포인터를 사용한다.


< 접근 제한자 >

public

private

protected

 

일반적인 클래스 선언 형식

class className
{
private:
    data member declarations

public:
    member function prototype
};

 

일반적으로 멤버변수는 private, 멤버함수는 public에 들어간다.