절차지향 언어

  • 데이터 중심
  • 물이 위에서 아래로 흐르는 것처럼 순차적 처리 가 중요시 되며, 프로그램 전체가 유기적으로 연결되도록 만드는 프로그래밍 기법
  • 대표적 언어 C언어

소프트웨어 언어의 발달과 컴파일러의 발달로, 하드웨어가 소프트웨어의 발달을 따라오지 못하는 상황이 생김

객체 지향 언어

  • 기능 중심
  • 개발하려는 것을 기능별로 묶어 모듈화를 함으로써 하드웨어가 같은 기능을 중복으로 연산하지 않도록 하고, 모듈을 재활용 하기 때문에 하드웨어의 처리양을 획기적으로 줄여주었다.
  • 컴퓨터 부품을 하나씩 사다가 컴퓨터를 조립하는 것과 같은 방법
  • 대표적 언어 Java언어
  • 3대 특성
    • 캡슐화
      • 관련된 데이터와 알고리즘(코드)이 하나의 묶음으로 정리된 것으로써 개발자가 만들었으며, 관련된 코드와 데이터가 묶여있고 오류가 없어 사용이 편리하다. 데이터를 감추고 외부 세계와의 상호작용은 메소드를 통하는 방법인데, 라이브러리로 만들어 업그레이드하면 쉡게 바꿀 수 있다.
    • 상속
      • 이미 작성된 클래스를 이어 받아서 새로운 클래스를 생성하는 기법으로 위에서 말한 기존 코드를 재활용해서 사용하는 것을 의미한다. 객체지향 방법의 큰 장점 중 하나
    • 다형성
      • 하나의 이름(방법)으로 많은 상황에 대처하는 기법. 개념적으로 동일한 작업을 하는 함수들에게 똑같은 이름을 부여할 수 있으므로 코드가 더 간단해지는 효과가 있다.
  • 장점
    • 코딩이 절차지향보다 간편
    • 높은 코드 재활용성
    • 쉬운 업그레이드
    • 쉬운 디버깅
  • 단점
    • 처리속도가 절차지향보다 느림
    • 설계에 많은 시간소요가 들어감







https://brownbears.tistory.com/407

'자바 상식 > 자바기초' 카테고리의 다른 글

1. 상속과 구성  (0) 2020.05.13
2. 지역변수와 인스턴스 변수 차이  (0) 2020.05.13
3. 디자인패턴 스트래티지 패턴  (0) 2020.05.13

+ Recent posts