혼자공부중
공부하는 블로그
혼자공부중
전체 방문자
오늘
어제
  • 분류 전체보기 (111)
    • 자격증 (49)
      • 정보처리기사 실기 (49)
    • JAVA (18)
    • DB (0)
    • 알고리즘 문제 풀이 (11)
      • 프로그래머스 (11)
    • Front (0)
      • HTML (0)
      • CSS (0)
      • Javascript (0)
    • 패스트캠퍼스 강의 (33)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 정보처리기사
  • 알고리즘
  • 데이터베이스
  • 정보처리기사 필기
  • UI
  • 상속
  • DBMS
  • 애플리케이션테스트
  • 정보처리기사 실기
  • 인터페이스
  • 데이터모델
  • 패스트캠퍼스 #포트폴리오 #직장인자기계발 #환급챌린지 #포트폴리오챌린지 #패스트캠퍼스후기 #초격차패키지 #오공완
  • 메소드
  • 2022정보처리기사실기
  • 배열
  • 변수
  • 2022정보처리기사필기
  • 2022정보처리기사
  • 코딩테스트
  • 정보처리기사 실기 정리
  • 정보처리기사 필기 정리
  • 자바
  • Java
  • 시나공
  • 반복문
  • 프로그래머스
  • 수제비
  • 객체지향
  • SQLD
  • 관계형데이터베이스

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
혼자공부중

공부하는 블로그

JAVA

[JAVA] 객체 지향 프로그래밍(OOP)

2022. 2. 19. 16:59

객체 지향 프로그래밍 (OOP: Object Oriented Programming)

  • 만들고자 하는 완성품인 객체를 모델링하고, 집합 관계에 있는 부품 객체와 사용 관계에 있는 객체를 하나씩 설계한 후 조립하는 방식으로 프로그램을 개발하는 기법이다

객체(Object)

  • 물리적으로 존재하거나 추상적으로 생각할 수 있는 것 중에서 자신의 속성을 가지고 있고 다른 것과 식별 가능한 것을 말한다. EX) 자동차, 자전거, 책, 사람, 공부, 주문, 수면 등
  • 객체는 속성과 동작으로 구성되어 있다.
  • 자바에서는 속성과 동작을 각각 필드(field)와 메소드(method)라고 부른다
  • 현실 세계의 객체를 소프트웨어 객체로 설계하는 것을 객체 모델링(Object Modeling)이라고 한다

객체 지향 프로그래밍의 특징

  • 캡슐화(Encapsulation)
    • 객체의 필드, 메소드를 하나로 묶고, 실제 구현 내용을 감추는 것을 말한다
    • 외부 객체는 객체 내부의 구조를 알지 못하며 객체가 노출해서 제공하는 필드와 메소드만 이용할 수 있다
    • 필드와 메소드를 캡슐화하여 보호하는 이유는 외부의 잘못된 사용으로 인해 객체가 손상되지 않도록 하기 위해서이다
    • 자바에서는 캡슐화된 멤버를 노출시킬 것인지, 숨길 것인지를 결정하기 위해 접근 제한자(Access Modifier)를 사용한다
    • 접근 제한자는 객체의 필드와 메소드의 사용 범위를 제한함으로써 외부로부터 보호한다
  • 상속(Inheritance)
    • 객체 지향 프로그래밍에서는 부모 역할의 상위 객체와 자식 역할의 하위 객체가 있다
    • 상위 객체는 자기가 가지고 있는 필드와 메소드를 하위 객체에게 물려주어 하위 객체가 사용할 수 있도록 해준다
    • 상위 객체를 재사용해서 하위 객체를 쉽고 빨리 설계할 수 있도록 도와주고, 이미 잘 개발된 객체를 재사용해서 새로운 객체를 만들기 때문에 반복된 코드의 중복을 줄여준다
    • 상위 객체의 수정으로 모든 하위 객체들의 수정 효과를 가져오므로 유지 보수 시간을 최소화시켜준다
  • 다형성(Polymorphism)
    • 같은 타입이지만 실행 결과가 다양한 객체를 이용할 수 있는 성질을 말한다
    • 하나의 타입에 여러 객체를 대입함으로써 다양한 기능을 이용할 수 있도록 해준다
    • 자바는 다형성을 위해 부모 클래스 또는 인터페이스의 타입 변환을 허용한다
    • 부모 타입에는 모든 자식 객체가 대입될 수 있고, 인터페이스 타입에는 모든 구현 객체가 대입될 수 있다
  • 추상화(Abstraction)
    • 유연성을 확보하기 위해 구체적인 것은 제거한다는 의미이다
    • 작성하려는 클래스의 속성과 기능 중 프로그램에서 필요한 공통점을 추출하고, 불필요한 공통점을 제거하는 과정이다

 

저작자표시 (새창열림)

'JAVA' 카테고리의 다른 글

[JAVA] getter와 setter  (0) 2022.02.24
[JAVA] 객체와 클래스  (0) 2022.02.22
[JAVA] 배열  (0) 2022.02.17
[JAVA] 분기문-break, continue  (0) 2022.02.16
[JAVA] 반복문  (0) 2022.02.15
    'JAVA' 카테고리의 다른 글
    • [JAVA] getter와 setter
    • [JAVA] 객체와 클래스
    • [JAVA] 배열
    • [JAVA] 분기문-break, continue
    혼자공부중
    혼자공부중
    대단한 목적보다는 혼자 공부하는 것에 의미를 두려고 합니다.

    티스토리툴바