🟩/Java

Java

진뚱이용 2024. 7. 19. 03:50

Java

  • 객체 지향 프로그래밍 언어입니다.
  • JVM(Java Virtual Machine)을 통해 다양한 운영 체제에서 동일하게 실행될 수 있습니다.

객체 지향 프로그래밍

  • (Object-Oriented Programming, OOP)은 프로그래밍 패러다임 중 하나입니다.
  • 프로그램을 객체(Object)들의 집합으로 간주하여 개발하는 방법론입니다.
  • 프로그램을 더욱 모듈화 하고, 유지보수와 확장이 용이하게 만듭니다.
  • 주요 개념
    • 객체 (Object)
      • 데이터와 메서드를 하나로 묶은 프로그래밍 단위입니다.
      • 객체는 클래스의 인스턴스입니다.
    • 클래스 (Class)
      • 객체를 정의하기 위한 틀(template) 또는 청사진(blueprint)입니다.
      • 클래스는 속성(attribute)과 메서드(method)를 포함하며, 이를 통해 객체를 생성할 수 있습니다.
    • 속성 (Attribute)
      • 객체가 가지는 데이터입니다.
    • 메서드 (Method)
      • 객체가 수행할 수 있는 동작이나 기능을 정의합니다.
    • A PIE
      • 추상화 (Abstraction)
        • 복잡한 시스템에서 필요한 부분만 간략화하여 노출하는 것입니다.
        • 이를 통해 복잡한 세부 사항을 숨기고, 중요한 부분만 강조합니다.
        • 부모 클래스는 직접 인스턴스화되지 않으며, 공통된 인터페이스를 제공하는 역할을 합니다.
      • 다형성 (Polymorphism)
        • 동일한 메서드가 다양한 객체에서 다르게 동작할 수 있는 능력입니다.
        • 유연하고 확장 가능한 코드를 작성할 수 있습니다.
      • 상속 (Inheritance)
        • 새로운 클래스가 기존 클래스의 속성과 메서드를 물려받는 것입니다.
        • 코드의 재사용성을 높이고, 계층 구조를 만들어 유지보수와 확장을 용이하게 합니다.
      • 캡슐화 (Encapsulation)
        • 객체의 속성과 메서드를 하나로 묶고, 외부로부터 숨기는 것입니다.
        • 데이터의 무결성을 유지하고, 객체 내부의 구현 세부 사항을 감출 수 있습니다.
        • 이를 통해 외부의 영향을 최소화하고, 객체 간의 상호 작용을 제어할 수 있습니다.

프로그래밍 패러다임

  • 프로그래밍 언어를 사용하여 문제를 해결하는 방식이나 스타일을 의미합니다.
  • 프로그래밍 패러다임은 특정 문제를 해결하는 데 적합한 방식을 제공하며, 프로그래머는 문제의 특성과 요구 사항에 따라 적절한 패러다임을 선택하여 사용합니다.
  • ex)
    • 절차적 프로그래밍
    • 객체 지향 프로그래밍
    • 함수형 프로그래밍
    • 논리 프로그래밍
    • 선언형 프로그래밍
    • 반응형 프로그래밍
    • 동시성 프로그래밍 

모듈화

  • 큰 프로그램을 더 작은, 독립적인 부분(모듈)으로 분리하는 프로그래밍 기법입니다.
  • 각 모듈은 특정 기능이나 역할을 수행하도록 설계되며, 다른 모듈과 상호작용하면서 전체 시스템을 구성합니다.
  • 장점
    • 재사용성
    • 유지보수성
    • 가독성
    • 협업
    • 테스트 용이성
  • ex)
    • 함수 및 메서드
    • 클래스
    • 패키지 및 네임스페이스
    • 라이브러리 및 프레임워크