본문 바로가기
개념정리/JAVA

객체 지향 프로그래밍이란 ?

by 원동호 2018. 11. 21.
반응형

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

객체 지향 프로그래밍은 컴퓨터 프로그래밍 패러다임중 하나로, 프로그래밍에서 필요한 데이터를 추상화 시켜,  상태와 행위를 가진 객체를 만들고 그 객체들 간의 유기적인 상호작용을 통해 로직을 구성하는 프로그래밍 방법이다.




객체 지향 프로그래밍의 장, 단점

  • 장점

코드 재사용이 용이하다.

- 남이 만든 클래스를 가져와서 사용할 수 있고 상속(extends, implements)을 통해 코드를 확장해서 사용할 수 있다.


유지보수 용이

- 절차 지향 프로그래밍에서는 코드를 수정할 때 일일이 찾아가며 수정해야 하지만 객체 지향 프로그래밍에서는 수정해    야 할 부분이 해 당 클래스 내부에 멤버 변수  혹은 메소드로 이루어져있기 때문에 해당 부분만 수정하면 된다.


대형 프로젝트에 적합

- 클래스 단위로 모듈화 시켜서 개발할 수 있으므로, 대형 프로젝트처럼 여러명, 여러회사에서 개발할 경우 업무를 분담    할 수 있다.


  • 단점

처리속도가 상대적으로 느리다.


객체가 많으면 용량이 커질 수 있다.


설계시 많은 시간과 노력이 필요하다.



객체 지향 프로그래밍 키워드 5가지


1) 클래스 + 인스턴스(객체)


2) 추상화


3) 캡슐화


4) 상속


5) 다형성



클래스와 인스턴스(객체)

클래스 : 어떤 문제를 해결하기 위한 데이터를 만들기 위해 추상화를 거쳐 집단에 속하는 속성(attribute)과 행위(behavior)를 변수와 메소드로 정의한 것


인스턴스(객체) : 클래스에서 정의한 것을 토대로 실제 메모리상에 할당된 것으로 실제 프로그램에서 사용되는 데이터


추상화

불필요한 정보는 숨기고 중요한 정보만을 표현함으로써 공통의 속성이나 메소드를 뽑아내는것

(로직 부분을 제외한 선언부분만)



캡슐화

캡슐화의 목적 : 코드를 재 수정 없이 재활용 하는것이다.


관련된 기능과 특성을 한 곳에 모으고 분류하여 재활용이 원활하다. 객체 지향 프로그래밍에서 기능과 특성의 모음을 "클래스" 라는 "캡슐"에 분류해서 넣는것이다.



상속

부모클래스의 속성과 기능을 그대로 이어받아 사용할 수 있게하고 기능의 일부분을 변경하여 자식 클래스에서 해당 기능만 다시 수정하여 사용할 수 있게 하는 것이다.


다형성

같은 모양의 코드에서 다른 행위를 하는 것. Overriding , Overoading을 사용



출처 : http://jeong-pro.tistory.com/95



반응형

댓글