솜은 코튼
[Java] 객체지향 프로그래밍 본문
객체지향 프로그래밍(OOP)이란?
: 컴퓨터 프로그래밍 패러다임 중 하나,
자료구조와 이를 중심으로 한 모듈들을 먼저 설계한 다음 이들의 실행 순서와 흐름을 짜는 방식
절차지향과의 차이는?
이름만으로 알 수 있듯 절차대로 진행되는 실행방식이다.
그럼 객체지향은 절차대로 실행되지 않나?
정답은 NO! 위에서 정의했듯이 객체지향 또한 절차대로 진행된다.
다만, 위의 그림에서 보면 알 수 있듯이 절차지향은 프로그램 순서와 흐름이 중점이 되고, 객체지향은 객체가 중점이 된다. 즉, 절차지향 프로그래밍은 프로그램의 순서와 흐름을 먼저 세우고 필요한 자료구조와 함수들을 설계하는 방식이라면, 객체지향 프로그래밍은 자료구조와 이를 중심으로 한 모듈들을 먼저 설계한 다음에 이들의 실행 순서와 흐름을 짜는 방식인 것이다.
객체지향 프로그래밍을 했을 때 장점은?
재사용 가능! 클래스를 공유하여 확장 사용할 수 있다.
유지보수 쉬움! 해당 클래스만 수정하면 된다.
객체지향 프로그래밍의 특징은?
: 추상화 / 캡슐화 / 상속구조 / 다형성
'추상화=이름표'
기능의 목적에 맞는 이름을 붙혀줌. '포도','사과','딸기'가 담겨있는 클래스는 '과일'이라는 이름을 붙힐 수 있다.
'캡슐화=메타(대체) 연결'
1- 내 손에 물이 있는 컵이 있다.
2- 컵 안에 에스프레소 한 샷을 넣었다.
3- 아메리카노가 되었다.
현재 내 컵엔 아메리카노가 되어버린 물이 있다.
이 물이 어떻게 아메리카노가 되었는지 2번의 과정을 보지 못하면 알 수 없다.
즉, 2번 과정의 소스를 보지 않으면 '아메리카노'란 결과가 어떻게 나왔는지 알 수 없다는 말이 된다.
예시와 같이 과정의 일부를 외부에 감추어 은닉할 수 있다.
'상속구조=서로 연결된 상태'
00초등학교의 1-1반과 1-2반의 교장선생님 성함은 '김철수'이다.
1-1반과 1-2반은 서로 다르지만 두 반의 교장선생님은 같은 분이다.
'다형성=맥락에 맞는 결과값'
체육시간에 1-1반 아이들을 운동장에 집합시켜야 한다.
'2층으로 올라가서 화장실 앞에 있는 문을 열고 들어가 안에 있는 아이들에게 운동장으로 나오라고 말한다.'
위의 자세한 설명 대신
'1-1반에 있는 아이들에게 운동장으로 나오라고 말한다.'와 같이 대략적으로 명령을 내릴 수 있다.
'Android > Java' 카테고리의 다른 글
[Android] Android Studio Offline Mode 설정 (0) | 2021.01.07 |
---|---|
[Android] Google Login API 적용 방법 (0) | 2021.01.05 |
[Android] Microsoft MAM 적용 방법 (0) | 2020.10.08 |
[Android] Android Studio Java 버전 교체 방법 (0) | 2020.08.31 |
[Android] startActivityForResult / onActivityResult (1) | 2020.07.03 |