-
객체지향? 절차지향? 정리 끝판@ 16. 1 ~ 17. 1/면접관련 2016. 12. 16. 15:36
객체 지향 프로그래밍이란?
프로그램을 수많은 객체라는 기본 단위로 나누고 이 객체들의 상호작용으로 데이터를 처리하는 프로그래밍
절차지향과의 차이점?
일단 둘다 실행방식에 있어서는 순서대로 진행되는것은 똑같다.
객체지향 프로그래밍이 실행절차에 영향을 받지 않는 프로그램 기법이 아니다.
절차지향 : 데이터와 함수가 묶여있지 않다., 객체지향에 비해서 코드양이 증가할수록 사용성과 유지보수의 어려움이 있다.
객체지향 : 데이터와 함수가 묶여 있다.
OPP를 사용하는 이유?
새로운 기능을 추가하거나 기능을 확장하는것이(유연성과 확장성) 편리하다.
그럼 어떤 특징 떄문에 위에 유연성과 확장성이 편하다는것인가?
특징
캡슐화
1. 기능과 데이터들을 한곳으로 모은것. 객체지향에서는 이런걸 클래스라고 부른다.
상속
상속의 주 목적은 재활용이 아니다 이전에도 라이브러리도 가능했다.
상위 클래스의 멤버들을 하위클래스에게 넘겨주는 것. 또한 계층구조를 만들기 위한 것.
다형성
상황에 따라 다른 의미로 해석될 수 있는것. 오버라이딩, 오버로딩이 여기에 해당한다.
(같은 명령에 대해 다른 반응을 보이는 특징)
*바인딩
각종 값들이 확정되어 더 이상 변경할 수 없는 상태가 되는것.
정적 바인딩 : 컴파일 시간에 완료되어 변화하지 않는 바인딩
장점은 안정성과 효율성이다. 컴파일시에 많은 정보를 결정하기 때문에 빠르고 안정적이다.
동적 바인딩 : 런타임 과정에서 바인딩되는것.
정적 바인딩에 비해서는 느림
'@ 16. 1 ~ 17. 1 > 면접관련' 카테고리의 다른 글
포트폴리오 예상질문 (0) 2016.12.16 디자인패턴 정리 (0) 2016.12.16 예상 질문 모음 (0) 2016.12.16 기술 면접 책 정리(비트조작, 일반 C++관련) (0) 2016.12.15 기술 면접 책정리(디자인 패턴) + 게임프로그래밍 패턴 책(예정) (0) 2016.12.15