객체지향언어 (OOP) - 1

DONI·2021년 8월 16일
0

Java

목록 보기
23/46
post-thumbnail

🏹 절차지향 언어 vs 객체지향 언어

  • 절차지향 언어 (= 명령형 언어)

    • 컴퓨터에 저장된 명령어들이 정해진 문법에 따라 순차적으로 실행
    • 데이터를 중심으로 프로시저를 구현
    • 프로그램 전체가 유기적으로 연결
    • 컴퓨터의 처리 구조와 유사하여 실행 속도가 빠름
    • 예) FORTRAN, COBOL, PASCAL, C
  • 객체지향 언어 (OOP; Object-Oriented Programming)

    • 객체와 객체 간의 메시지 통신을 이용하여 프로그램 작성
    • 프로그램 동작 중에서 필요한 기능에 따라 알맞은 객체를 호출하면서 사용
    • 예) JAVA, C++


🏹 객체지향 언어의 구성요소

  • 객체 (Object)

    • 데이터(속성)와 이를 처리하기 위한 연산(메서드)을 결합시킨 실체
    • 현실에 존재하는 독립적이면서 하나로 취급되는 사물이나 개념
  • 클래스 (Class)

    • 객체의 특성(속성, 메서드)을 정의해놓은 객체를 만들기 위한 설계도
    • 예) 회원, 자동차, 도서
  • 메시지 (Message)

    • 객체의 메서드(동작, 연산)를 일으키는 외부의 요구사항
    • 메시지를 받은 객체는 대응하는 연산을 수행하여 예상된 결과를 반환

🏹 객체의 구성요소

  • 개체 (Entity)

    • 현실 세계에 보이는 본질을 의미 (사람, 장소, 물건, 사건, 개념 등)
  • 속성 (Attribute)

    • 객체들이 가지고 있는 데이터 값들을 단위별로 정의하는 것
    • 절차지향 언어의 변수와 대응
  • 메서드 (Method)

    • 객체가 메시지를 받아서 실행해야 할 때의 구체적인 연산을 정의하는 것
    • 절차지향 언어의 함수와 대응

🏹 객체지향 언어의 특징

  • 캡슐화 (Encapsulation)

    • 추상화를 통해 정리된 데이터와 데이터를 처리하는 메서드를 하나로 묶는 것
    • 세부 내용이 외부에 은폐(정보 은닉)되어 오류의 파급 효과가 적음 (객체 손상 X)
    • 캡슐화된 객체들은 재사용이 용이함
  • 정보 은닉 (Information Hiding)

    • 다른 객체에게 자신의 정보를 숨기고 자신의 연산만을 통하여 접근을 허용
    • 예) 감기약 (어떤 재료가 들어있는지 몰라도 감기약이라는 것만 알고 복용)
  • 추상화 (Abstraction)

    • 객체의 속성 중 가장 중요한 것에만 중점을 두어 개략화하는 것
    • 데이터의 공통된 성질을 추출하여 슈퍼 클래스를 선정하는 개념
  • 상속 (Inheritance)

    • 이미 정의된 부모 클래스의 모든 속성과 연산을 자식 클래스가 물려받는 것
  • 다형성 (Polymorphism)

    • 하나의 부모타입 참조변수로 여러 타입의 자식 객체를 참조 가능한 것
profile
틀린 내용이 있다면 댓글 또는 이메일로 알려주세요 ❤ꔛ❜

0개의 댓글