Java

[자바] 객체(Object)

lala9663 2022. 9. 21. 14:23

객체(Object)


  • 의사나 행위가 미치는 대상 (사전적 의미)
  • 구체적, 추상적 데이터의 단위 (학생, 회원, 생산, 주문, 배송)

객체지향 과 절차지향


객체 지향과 절차지향

출처: https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F998992425B3768AA23

절차지향


  • 순차적인 처리가 중요시되며 프로그램 전체가 유기적으로 연결되도록 만드는 프로그래밍 기법
    대표적인 언어: C언어

장점

  • 컴퓨터의 처리 구조와 유사해 실행속도가 빠름

단점

  • 유지보수가 어려움
  • 실행 순서가 정해져 있으므로 코드의 순서가 바뀌면 동일한 결과 보장하기 어려움

객체지향


  • 실제 세계를 모델링하여 소프트웨어를 개발하는 방법
    (마치 컴퓨터 부붐을 하나씩 사다가 컴퓨터를 조립하는 것과 같은 방법)

객체지향의 3대 특성


  1. 캡슐화
  • 캡슐화란 관련된 데이터와 알고리즘이 하나의 묶음으로 정리되는 것
  1. 상속
  • 이미 작성된 클래스를 이어 받아서 새로운 클래스를 생성하는 기법으로 위에서 말한 기존 코드를 재활용해서 사용하는 것
  1. 다형성
  • 하나의 이름으로 많은 상황에 대처하는 기법. 코드가 더 간단해지는 효과가 있다.

장점

  • 코드의 재활용성이 높음
  • 코딩이 절차지향보다 간편함
  • 디버깅이 쉬움

단점

  • 처리속도가 절차지향보다 느림
  • 설계에 많은 시간소요가 들어감