2020. 9. 24. 13:07ㆍProgramming Language/JAVA
■ 객체 지향 프로그래밍의 4가지 특징
■ 캡슐화(encapsulation)
캡슐화는 말그대로의 캡슐이라는 의미적인 표현에서 알 수 있듯이 크게 2가지 특징을 확인할 수 있습니다.
우선은 이해를 돕기 위해 캡슐형태의 감기약을 예시로 설명하겠습니다.
첫번째, 캡슐형태의 감기약 안에는 감기를 치료한다는 한가지의 목적을 갖는 연관성을 띄는
다양한 약품들이 들어 있다는 것을 알 수 있다.
OOP에서도 특정 역할을 하는 속성(멤버변수), 기능(메서드)을 객체로 묶은 것을 의미합니다.
두번째, 캡슐이 내부의 약품들에 변질과 외부의 환경으로부터 보호 하고 있듯이,
OOP에서도 접근제어자와 같은 기능들을 통해 외부접근으로부터 데이터를 보호하고 정보를
은닉하는 것을 의미합니다
■ 추상화(abstraction)
추상화의 개념은 자동차를 통해서 간단하게 설명이 가능합니다.
모든 종류의 자동차는 공통적으로 문이 있고, 엔진이 있으며, 바퀴가 있고
이를 통해 문을 열고 밖으로 나오거나, 자동차에 시동을 걸거나 이동이 가능해집니다.
이러한 모든 자동차가 공통적으로 가지고 있으며 특징과 기능을 도출하는것을 추상화라고 합니다.
또한 개념적인 설명으로는 객체들의 공통 특징(멤버변수, 메서드)을 뽑아 하나의 클래스로 표현하는 것을 의미합니다.
■ 상속성(inheritance)
상속성은 부모와 자식의 관계에서 유전과 같이 부모의 키가 커서 자식이 키가 크거나,
부모의 성격이 급해서 자식의 성격이 급하다는 등의 예시로 설명이 가능합니다.
부모의 특징(멤버변수와 메서드)을 상속받아서 자식객체에서 재정의하지 않아도 사용이 가능하기 때문에
코드의 중복을 없애고 재사용성을 높이는 효과가 있습니다.
■ 다형성(polymorphism)
개념적으로 형태는 같은데 다른 기능을 하는 것을 의미한다.
이를 통해 코드의 재사용, 코드가 효율적으로 작성되어 유지보수에 용이합니다.
또한 오버로딩과 오버라이딩을 통해서 설명이 가능합니다.
오버로딩은 한 클래스내에서 유사하지만 기능은 다르고 이름이 같은 메서드를 여러개 정의하는 것을 의미합니다.
오버라이딩은 상속관계에 있는 부모 클래스의 메서드를 자식클래스에서 재정의 하는것을 의미합니다.
'Programming Language > JAVA' 카테고리의 다른 글
[JAVA] 프레임워크(Framework)와 라이브러리(Library)의 차이 (0) | 2020.09.24 |
---|---|
[JAVA] 상속(extends)과 구현(implements)의 차이 (0) | 2020.09.24 |
[JAVA] 스트림(Stream) API 활용 (0) | 2020.08.07 |
[JAVA] Arrays 클래스 활용 (배열 다루기) (0) | 2020.08.06 |
[JAVA] StringTokenizer 클래스 활용 (문자열 구분자로 자르기) (0) | 2020.08.06 |