객체지향 프로그래밍
A. 객체지향프로그래밍은 프로그램 구현에 필텍스트요한 객체를 파악하고 각각의 객체들의 역할이 무엇인지를 정이하여 객체들 간의 상호작용을 통해 프로그램을 만드는 것을 말합니다.
A. 장점은 상속, 캡슐화, 다형성으로 인해 재사용할 수 있습니다. 개발자가 만든 데이터를 사용하기 때문에 신뢰할 수 있고, 디버깅이 쉽습니다.
단점은 절차지향 프로그래밍에 비해 실행속도가 느리며 필요한 메모리 양이 증가합니다.
A.추상화, 캡슐화, 상속성, 다형성, 동적바인딩이 있습니다.
먼저, 추상화란 객체들의 공통적인 특징을 도출하는 것입니다. 객체지향관점에서는 클래스를 정의하는 것을 추상화라고 할 수 있습니다.
캡슐화란 실제로 구현되는 부분을 외부에 드러나지 않도록 하여 정보를 은닉할 수 있습니다.
상속성이란 하나의 클래스가 가진 특징을 다른 클래스가 그대로 물려받는 것입니다.
다형성은 동작하는 함수를 동일한 이름으로 호출하는 것입니다. 동일한 명령의 해석을 연결된 객체에 의존하고 오버라이딩과 오버로딩이 있습니다.
마지막으로, 동적바인딩은 가상 함수를 호출하는 코드를 컴파일할 때, 바인딩을 실행시간에 결정하는 것입니다. 프로그래밍의 유연성을 높여주며 파생 클래스에서 재정의한 함수의 호출을 보장합니다.
A. 먼저, 오버로딩은 메소드의 이름은 같으나 매개변수의 개수나 타입을 다르게 하여 여러 개 정의하는 것입니다.
오버라이딩은 부모클래스에 있는 메소드를 자식클래스에서 재정의하는 것입니다.
절차지향 프로그래밍
A. 절차지향 프로그래밍은 명령형, 구조적 프로그래밍의 일종으로 프로시저 콜이라는 함수호출을 통해 추상화와 재사용성을 얻어내는 것에 초점을 맞추고 있기 때문에, 선언형, 비구조적 프로그래밍과 비교해 데이터 처리에 대한 모듈화와 구조화할 수 있습니다.
A. 유지보수가 어렵고, 정해진 순서대로 입력을 해야 되므로 순서가 바뀌면 결과값을 도출하기 어렵습니다. 또한 프로그램을 분석하기 어렵습니다.
출처 :