뇌
객체 지향 프로그래밍 본문
객체란 ?
변수, 자료 구조, 함수, 메소드 처럼 데이터나 식별자에 의해 참조되는 공간
객체 지향 프로그래밍이란 ?
객체들의 모임을 지향하는 프로그래밍이다. 즉, 객체들로 데이터를 처리하고, 메시지를 주고 받는다.
객체 지향 언어
자바, 파이썬, C++, C# 등등
객체 지향 프로그래밍의 장점
- 직관적인 코드 분석 가능
- 소프트웨어 개발과 보수가 간편
- 프로그래밍을 배우기 더 쉬움
객체 지향 프로그래밍의 단점
- 실제 세계의 모습을 그대로 반영하지 못함
객체 지향 프로그래밍의 특징
-
자료 추상화
중요한 정보만 표현함 -> 프로그램을 간단히 만듦
자료 추상화를 톡해 정의된 자료형을 추상 자료형이라고 함. -> 자료 표현과 자료형의 연산을 캡슐화한 것으로 접근 제어를 통해서 자료형의 정보를 은닉 가능.
-
상속
새로운 클래스 ( 하위 클래스, 자식 클래스 ) 가 기존 클래스 ( 상위 클래스, 부모 클래스 ) 의 자료와 연산을 이용할 수 있게 하는 기능
-
다중 상속
클래스가 2개 이상의 클래스로부터 상속받을 수 있게 하는 기능 -> 클래스들의 기능이 동시에 필요할 때 사용
-
동적 바인딩
실행 시간 중에 일어나거나 실행 과정에서 변경될 수 있는 바인딩으로 컴파일 시간에 완료 ( 정적 바인딩의 반대
객체 지향 프로그래밍이 필요한 이유
아까 말한 장점들처럼,
- 직관적인 코드 분석 가능
- 소프트웨어 개발과 보수가 간편
- 프로그래밍을 배우기 더 쉬움
이런 이유가 있겠고,
고유한 일과 데이터를 부여함으로써 이 프로그램이 어떻게 동작하는지 파악하기 쉽게 하고, 데이터를 객체별로 나눠 다른 객체에서 접근하지 못하게 한다.
그리고 상속의 기능으로 코드의 중복을 없앱으로써 유지 보수에 많은 비용을 줄일 수 있다.
'Layer 7' 카테고리의 다른 글
Docker, Container (0) | 2020.09.16 |
---|---|
BaskinRobins31 - Stack Pivoting (0) | 2020.09.14 |
운영체제 메모리 할당 알고리즘 (0) | 2020.09.02 |
[Pwnable] Codegate 2018 - BaskinRobins31 (0) | 2020.09.01 |
바이너리 분석 2 - RTL ( NX-bit bypass ) (0) | 2020.08.25 |
Comments