[Java] OOP(Object Oriented Programing)

JD_S·2022년 11월 7일
0

Java

목록 보기
4/21

객체 vs 인스턴스

객체 : 속성과 기능의 집합, 모든 인스턴스를 대표하는 포괄적인 의미를 갖는다.
인스턴스 : 객체와 같음. 하지만 약간 다른점은 어떤 클래스로부터 만들어진 것인지를 보다 강조하는 의미를 갖는다.

클래스

객체의 설계도 또는 틀. 즉, 객체를 정의해 놓은 것.

객체 지향 언어

객체지향 언어 : 프로그램을 다수의 객체로 만들고, 이들끼리 서로 상호작용하도록 만드는 프로그래밍 언어

특징 - 1

  • 코드의 재사용성이 높다.
    • 새로운 코드를 작성할 때 기존의 코드를 이용하여 쉽게 작성할 수 있다.
  • 코드의 관리가 용이하다.
    • 코드간의 관계를 이용해서 적은 노력으로 쉽게 코드를 변경할 수 있다.
  • 신뢰성이 높은 프로그래밍을 가능하게 한다.
    • 제어자와 메서드를 이용해서 데이터를 보호하고 올바른 값을 유지하도록 하며, 코드의 중복을 제거하여 코드의 불일치로 인한 오동작을 방지할 수 있다.

특징 - 2

  • 캡슐화
    • 접근 제어자를 사용하여 클래스 내부에 선언된 데이터를 외부로부터 보호하는 것.
  • 상속성
    • 기존의 클래스(부모 클래스)를 재사용하여 새로운 클래스(자식 클래스)를 작성하는 것.
  • 다형성
    • 하나의 참조변수로 여러 타입의 객체를 참조할 수 있는 것. 즉, 조상타입의 참조변수로 자손타입의 객체를 다룰 수 있는 것. (반대로 자손타입의 참조변수로 조상타입의 인스턴스는 참조할 수 없다.)
  • 추상화
    • 객체들의 공통된 특징을 정의해 놓은 것.

객체 지향 프로그래밍

컴퓨터 프로그래밍의 패러다임 중 하나로, 컴퓨터 프로그램을 명령어의 목록으로 보는 시각에서 벗어나 여러 개의 독립된 단위, 즉 "객체"들의 모임을 파악하고자 하는 것. 각각의 객체는 메시지를 주고받고, 데이터를 처리할 수 있다.

장점 : 유지보수를 간편하게 하며, 직관적인 코드 분석을 가능하게 한다.
단점 : 지나친 객체화 경향은 실제로 반영하기가 쉬운 일이 아니다.

Reference

profile
Whatever does not destroy me makes me stronger.

0개의 댓글