객체 지향 프로그래밍(OOP)이란?
- 프로그램을 개발하는 기법으로, 부품에 해당하는 객체들을 먼저 만들고, 이것들을 하나씩 조립하고 연결해 전체 프로그램을 완성하는 기법이다.
객체 지향 프로그래밍의 장점은?
- 코드의 재사용이 가능하다.
- 한번 만든 클래스는 상속을 통해 확장할 수 있다.
- 유지보수가 쉽다.
- 객체 지향 언어의 경우, 수정해야 하는 부분은 클래스 내부에 멤버 변수와 메소드에 존재하므로 유지보수를 하기 쉽다.
객체 지향 프로그래밍의 단점은?
- 객체가 많아질수록 프로그램의 용량이 커지게 된다.
- 상대적으로 처리 속도가 느리다.
객체 지향 프로그래밍의 특징
- 캡슐화 (Encapsulation)
- 객체의 필드, 메소드를 하나로 묶고, 실제 구현 내용을 감추는 것을 말한다.
- 외부 객체는 객체 내부의 구조를 알지 못하며 객체가 노출해서 제공하는 필드와 메소드만 이용할 수 있다.
- 외부의 잘못된 사용으로 인해 객체가 손상되지 않도록 하는 것이 목적이다.
- 접근 제한자를 사용해 캡슐화된 멤버를 숨길 것인지 보여줄 것인지를 정한다.
- 정보 은닉 (Information Hiding)
- 다른 객체에게 자신의 정보를 숨기고 자신의 메소드를 통해서만 접근을 허용하는 것.
- 추상화 (Abstraction)
- 불필요한 부분은 생략하고, 객체의 속성 중 가장 중요한 것에만 중점을 두어 모델화하는 것.
- 상속 (Inheritance)
- 정의된 부모 클래스의 모든 속성과 메소드를 상속 받은 클래스가 물려받는 것.
- 상위 객체를 재사용해서 하위 객체를 쉽고 빨리 설계할 수 있도록 도와준다.
- 이미 잘 개발된 객체를 재사용해 새로운 객체를 만들기 때문에 반복된 코드의 중복을 줄여준다.
- extends
- 다형성 (Polymorphism)
- 같은 타입이지만 실행 결과가 다양한 객체를 이용할 수 있는 성질을 말한다.
- 하나의 타입에 여러 객체를 대입함으로써 다양한 기능을 이용할 수 있도록 해준다.
객체와 클래스
- 객체는 설계도를 바탕으로 만들어진다. 이 설계도가 바로 클래스(Class)이다.
- 클래스로부터 만들어진 객체를 해당 클래스의 인스턴스(instance)라고 한다.
'Web > Java' 카테고리의 다른 글
Stream - (1) 스트림이란? (0) | 2021.07.12 |
---|---|
인터페이스 (Interface) (0) | 2021.03.30 |
추상 클래스 (Abstract Class) (0) | 2021.03.30 |
Array와 Collection Framework의 차이는?! (0) | 2021.03.26 |
Exception, 개발자의 숙명! (0) | 2021.03.24 |
댓글