티스토리 뷰
객체 지향 프로그래밍 언어는 대표적으로 자바가 있다.
그렇다면, 객체 지향 프로그래밍이란 무엇을 뜻할까?
객체 지향 프로그래밍(OOP: Object Oriented Programming)은 객체를 모델링하고, 집합 관계에 있는 부품 객체와 사용 관계에 있는 객체를 하나씩 설계한 후 조립하는 방식으로 프로그램을 개발하는 기법이다.
객체 지향 프로그래밍의 특징은 크게 3가지로 볼 수 있다.
1. 캡슐화(Encapsulation)
캡슐화란 실제 구현 내용을 감추는 것을 말한다.
외부 객체는 객체 내부의 구조를 알지 못하며 객체가 노출해서 제공하는 필드와 메소드만 이용할 수 있는 것을 뜻한다.
일반적으로, 필드와 메소드를 캡슐화하여 보호한다.
그 목적은, 외부의 잘못된 사용으로 인해 객체가 손상되지 않도록 하는데 있다.
예를 들어, 핸드폰이나 컴퓨터의 주요 부품은 케이스에 숨겨져있다.
그 이유가 무엇이겠는가?
사용자의 실수로 인해 주요 부품의 고장 및 파손을 방지하기 위해서이다.
이처럼 자바는 접근 제한자(Access Modifier)를 사용하여, 객체의 필드와 메소드의 사용 범위를 제한함으로써 이것들을 외부로부터 보호한다.
2. 상속(Inheritance)
일상생활에서 상속은 보통 부모가 자식에게 무엇을 물려줄때 주로 사용하는 단어이다.
자바에서도 크게 다르지 않다.
객체 지향 프로그래밍에서도 부모 역할의 상위 객체와 자식역할의 하위 객체가 존재한다.
상속은 자신의 필드와 메소드를 하위객체에게 물려주는 것을 뜻한다.
상속의 목적은 상위 객체를 재사용하여, 하위 객체의 쉽고 빠른 설계와 반복된 코드의 중복을 줄이는 것에 있다.
3. 다형성(Polymorphism)
다형성은 같은 타입이지만, 실행 결과가 다양한 객체를 이용할 수 있는 성질을 뜻한다.
코드 측면에서 보면 다형성은 하나의 타입에 여러 객체를 대입함으로써 다양한 기능을 이용할 수 있도록 한다.
예를들어, Animal과 Cat이라는 객체가 있다고 해보자.
Animal이 Cat의 부모 클래스 라고 할때,
Cat Nabi = new Cat();
뿐만이 아니라,
Animal Nabi = new Cat();
또한 가능하다는 것이다.
이것은 상속 단원에서 조금 더 자세히 확인할 수 있다.
'JAVA' 카테고리의 다른 글
싱글톤(Singleton) (0) | 2019.09.16 |
---|---|
정적 멤버와 인스턴스 멤버 (0) | 2019.09.16 |
클래스 구성 멤버들의 사용 및 오버로딩 (0) | 2019.09.11 |
클래스의 구조 (0) | 2019.09.10 |
객체와 클래스 (0) | 2019.09.10 |