프로그래밍 패러다임은 프로그래머에게 프로그래밍의 관점을 갖게 하고, 결정하는 역할을 한다. 이러한 프로그래밍 패러다임은 크게 두가지로 나눌 수 있다.
물이 높은곳에서 낮은곳으로 흐르는 것처럼 순차적인 처리가 중요시되며, 프로그램 전체가 유기적으로 연결되도록 만드는 프로그래밍 기법
[장점]
컴퓨터의 처리 구조와 유사해 실행 속도가 빠르다.
[단점]
유지보수가 어렵다.
실행 순서가 정해져 있어 코드의 순서가 바뀌면 동일한 결과를 보장하기 어렵다.
디버깅이 어렵다.
컴퓨터 부품을 하나씩 사서 컴퓨터를 조립하는 것과 같은 방법으로 데이터와 절차를 하나의 덩어리로 묶어서 생각하는 프로그래밍 기법
[장점]
코드의 재활용성이 높다.
절차지향에 비해 쉽게 코딩이 가능하다.
디버깅이 쉽다.
[단점]
처리속도가 절차지향보다 느리다.
설계에 많은 시간 소요가 된다.
캡슐화 (Encapsulation)
객체를 캡슐로 싸서 그 내부를 보호하고 볼수 없게하는 것으로 객체의 가장 본질적인 특징
JAVA 에서 Class는 객체의 모양을 선언한 틀이며, 클래스 모양 그대로 생성된 Instance가 객체가 된다.
자바는 field와 method를 클래스 내에 모두 구현하고 캡슐화를 통해 객체 내 필드에 대한 외부로의 접근을 제어한다.
상속 (Inheritance)
상위 개체의 속성이 하위 개체에 물려져, 하위 개체가 상위 개체의 속성을 모두 가지는 관계
상속을 통해 상위 객체의 필드와 메소드를 물려받아 코드의 중복 작성을 방지하고, 코드를 재사용함으로써 코드 작성에 드는 시간과 비용을 줄일 수 있다.
다형성 (Polymorphism)
같은 이름의 메서드가 클래스 혹은 객체에 따라 다르게 구현 되는 것.
JAVA 에서의 다형성은 Overloading, Overriding이 있다.
상위 클래스에서 구현된 메서드를 서브 클래스에서 자신의 특징에 맞게 다시 구현하는 것을 오버라이딩이라고 하며, 클래스 내에서 같은 이름의 메서드를 여러개 만드는 것을 오버로딩 이라고 한다.
자료 처리를 수학적 함수의 계산으로 취급하고 상태와 가변 데이터를 멀리하는 프로그래밍 패러다임의 하나
함수는 코드 구성의 기본이며 모든 고차원 프로그래밍 언어에 존재한다. 일반적으로 함수형 프로그래밍은 깨끗하고 유지보수가 쉬운 소프트웨어를 만들기 위해 함수를 최상의 효과로 사용하는 것을 의미한다.
출처 :