개발 Study

#25. 객체지향, 클래스

HYuk 2021. 5. 5. 22:21
728x90

객체지향프로그래밍 (OOP : Object Oriented Programming)

-> 객체간의 상호작용으로 프로그래밍이 진행된다.

상호작용은 객체들이 가지고 있는 함수를 통해 이루어 진다.

유지, 보수 및 관리가 용이하다.

 

클래스(Class)

->C++부터 생긴 사용자 정의 자료형이다.

변수데이터를 다루는 함수를 하나로 묶어 놓은 것이다.

클래스 자료형을 토대로 변수명을 부여하면 메모리에 등록이 된다.

이를 인스턴스(Instance)라고 부른다.

 

클래스는

class 클래스명

{

변수 및 함수 선언

 

};

으로 선언된다.

 

접근시에는 클래스명.변수또는함수명 으로 접근이 가능하다.

 

클래스를 선언할때

private

public

protected

세가지로 나뉘어 지는데,

멤버내 선언들은 기본적으로 private으로 선언된다.

(구조체는 기본적으로 public으로 선언된다.)

 

1.private

멤버 접근이 오로지 내부에서만 가능하게 된다.

외부에선 해당 멤버 또는 함수가 접근이 불가능하다.

 

2. public

멤버 접근이 내/외부 모두 허용된다.

 

3. protected

멤버 접근이 내부 혹은 상속 관계에서만 가능하다.

 

class(클래스)와 struct(구조체)의 차이는

기본선언이 class는 private / struct는 public

인 차이뿐이 없지만

구조체는 데이터덩어리외에는 쓰지 않는다.

 


클래스의 속성

1. 은닉화

-> 멤버 접근 지정자를 private로 설정함으로써 외부로부터 무분별한 데이터 변경을 막아 데이터를 보호한다.

 

2. 캡슐화

-> 내부가 어떻게 되어 있던, 기능을 사용하면 해당 기능을 수행하면 된다.

 

3. 상속성

-> 클래스 끼리 공통으로 필요한 데이터가 있을 경우 상속으로 물려줄 수 있다.

 

4. 다형성

-> 동일한 기능을 사용하지만 각기 다른 기능으로 작동하는 것이다.

 

 

728x90