※ 출처
https://fastcampus.co.kr/dev_online_javaend
https://blog.naver.com/gitacademy01/222394033958
https://jwprogramming.tistory.com/121
https://brownbears.tistory.com/407
객체 (Object)
- 사전적 의미로 의사나 행위가 미치는 대상
- 구체적, 추상적 데이터의 단위 ( 학생, 회원, 주문, 배송)
- 자신의 속성을 가지고 있고 다른 것과 식별 가능한 것을 말함
- 자바에서는 이 속성과 동작을 각각 필드(field)와 메서드(method)라 부름
절차 지향 프로그래밍
- 대표적인 언어로 C언어가 있다.
- 절차 지향 언어는 객체를 순차적으로 처리하여 프로그램 전체가 유기적으로 연결되어야 한다.
- 시간이나 사건의 흐름에 따른 프로그래밍
ex) 차량 : 시동을 건다 → 주차 브레이크(사이드 브레이크)를 푼다 → 기어를 변경한다 → 엑셀을 밟는다
| 장점 | 단점 |
| 컴퓨터의 처리구조와 유사해 실행속도가 빠름 | 유지보수가 어려움 |
| 실행 순서가 정해져 있으므로 코드의 순서가 바뀌면 동일한 결과를 보장하기 어려움 | |
| 디버깅이 어려움 |
객체 지향 프로그래밍
- 실제 세계를 모델링하여 소프트웨어를 개발하는 방법
- 4가지 특징
캡슐화
- 캡슐화란 관련된 데이터와 알고리즘이 하나의 묶음으로 정리된 것
- 데이터를 감추고 외부 세계와의 상호작용은 메서드를 통하는 방법
- 외부 객체는 객체내부의 구조를 알지 못하며 객체가 노출해서 제공하는 필드와 메서드만 이용 가능
- 외부의 잘못된 사용으로 인해 객체가 손상되지 않도록 하기 위함
- 자바언어는 캡슐화된 맴버를 노출/숨김 여부를 결정하기 위해 접근 제한자를 사용
- 접근 제한자는 객체의 필드와 메서드의 사용 범위를 제한함으로써 외부로부터 보호
상속
- 이미 작성된 클래스를 이어 받아서 새로운 클래스를 생성하는 기법
- 상위 객체를 재사용함으로써 하위 객체를 쉽고 빨리 설계할 수 있도록 도와줌
- 반복된 코드의 중복을 줄여줌
다형성
- 상속과 연관된 개념으로, 하나의 객체가 다른 여러 객체로 재구성되는 것
- 하나의 타입에 여러 객체를 대입함으로써 다양한 기능을 이용할 수 있게 해 줌
추상화
- 객체 지향적 관점에서 클래스를 정의하는 것을 추상화라고 정의 내릴 수 있다.
ex) 물고기, 사자, 뱀 = 동물 or 생물 >> 동물 or 생물이라고 묶는 것을 추상화
| 장점 | 단점 |
| 코드의 재활용성이 높음 | 처리속도가 절차지향보다 느림 |
| 코딩이 절차지향보다 간편함 | 설계에 만흔 시간소요가 들어감 |
| 디버깅이 쉬움 |
'Java > 객체지향 프로그래밍' 카테고리의 다른 글
| JAVA / 캡슐화(encapsulation) (0) | 2022.06.15 |
|---|---|
| JAVA / 접근 제어 지시자(access modifier)와 정보은닉(infomation hiding) (0) | 2022.06.13 |
| JAVA / 기본 자료형과 참조 자료형 (0) | 2022.06.10 |
| JAVA / 생성자 (0) | 2022.06.07 |
| JAVA / 함수와 메서드 (0) | 2022.06.03 |