JAVA - OOP란?
- JAVA
- 2018. 1. 31. 21:44
OOP란?
객체지향프로그래밍 이다
(Object Oriented Programming)
우리 들이 프로그래밍을 개발 할때
사용하는 언어인 JAVA는 완전한
객체 지향 언어이다
우리가 JAVA에 대해 공부를하여
프로그래밍을 개발하려면
OOP에 대해 어느정도 머릿속에
기억 시켜야 할 필요가있다
또한 OOP에 대해서는
몇몇 회사에서 취업을 하려할때
실제로 면접관들이 물어보기도 한다
OOP는 객체가 주가 되는 객체에 집중되는
프로그래밍으로 크게 4가지의 특징을 가진다
(캡술화, 추상화, 다형성, 상속성)
OOP에대해 짧게 설명하면
"객체지향 프로그래밍이란 캡슐화, 다형성, 상속성, 추상화 등의
4가지 특징을 이용해 코드 재사용을
증가시키고 유지보수를 감소시키는 장점을 얻기 위해서
객체들을 연결 시켜 프로그래밍 하는것 입니다."
캡슐화
캡슐화(Encapsulation)는 객체의
필드, 메소드를 하나로 묶고 실제 구현
내용을 감추는 것을 말한다.
그럼 외부객체는 내부객체 내부의 구조를
알 수 없고 객체가 노출해서
제공하는 필드와 메소드만 이용할 수 있다.
이렇게 객체를 외부로부터 숨기고
접근을 못하게 막는것을
"은닉화" 라고 한다
은닉화는 캡슐화의 한 부분이다
보통 은닉화는 private 라는 지시자를
이용한다
(이것은 나중에 자세히 알아보겠다)
따라서 캡슐화를 한다면 은닉화도
자연스럽게 된것이다.
추상화
추상화(Abstraction)는 공통의
속성이나 기능을 묶어 이름을 붙이는것이다
예를 들어
위와같이 표현할수 있겠다
또다른 예로
동물 과 생물 이라는
추상적인 객체로 크게 정의되어있다
이때 동물과 생물 이라고
묶는것을 추상화 라고한다.
다형성
다형성(Polymorphism)이란
같은 타입이지만 실행 결과가 다양한
객체를 이용할 수 있는 성질을 말하는데
하나의 타입에 여러 객체를 대입할 수 있기 때문에
다양한 기능을 이용할 수 있다.
JAVA는 다형성을 위해 부모클래스나
인터페이스의 타입변환을 허용한다. 부모타입에는
모든 자식 객체가 대입될수 있고 인터페이스
타입에는 모든 구현 객체가
대입될 수 있다.
상속성
상속성(Inheritance)이란
상위개념의 특징을 하위개념이 물려받는 것으로
부모역할을 하는 상위 객체가
자식 역할을 하는 하위 객체 에게
자신이 가진 속성(필드와 메소드)을
물려주는 것을 말한다. 하위객체는 상황에 맞게
상위객체에게 물려받은 메소드를 오버라이딩
해서 사용할 수도 있다.
상속은 이미 만들어져 있는 상위
객체를 재사용하여 하위 객체를 쉽고
빨리 설계할 수 있도록 도와준다
또한 상위 객체의 수정으로 모든
하위 객체들에게도 수정효과를
낼수 있으므로 유지보수에도 좋다
'JAVA' 카테고리의 다른 글
JAVA - 문자열 토큰(Token) (0) | 2018.02.01 |
---|---|
JAVA - static변수 (0) | 2018.02.01 |
JAVA - 오버라이딩 (0) | 2018.02.01 |
JAVA - 메소드 오버로딩 (0) | 2018.02.01 |
JAVA - 접근제어 지시자 (0) | 2018.01.31 |