1. 객체지향 프로그래밍(Object Oriented Programming) 이란?
1) 객체란
: 메소드(행위)의 대상이라고 생각하면 된다.
ex) 사람, 자동차, 주문 등..
2) 객체지향의 정의
: 객체를 기반으로 하는 프로그래밍. 객체를 정의하고, 객체의 기능을 구현하며, 객체간의 협력을 구현
(다른 프로그래밍 방식으로는 절차지향 프로그래밍이 있다.)
3) 객체지향 vs 절차지향
-객체지향: 학생, 버스, 밥, 학교라는 객체를 정의하고, 객체간의 연관관계를 파악하여 기능을 구현하며, 각 객체간의 상호 협력 관계를 파악하여 구현한다.
- 절차지향: 일어난다->씻는다->밥을 먹는다->요금을 지불한다->학교에 도착
2. 객체지향의 구성 요소
1) 클래스(class): 객체를 코드로 구현한 것, 객체의 청사진
2) 멤버 변수(member variable): 객체가 가지는 속성을 변수로 표현
3) 메서드(method): 객체의 기능을 구현
cf)
구인구직 어플리케이션 프로그래밍 제작시 필요한 요소(부품)가 무엇이 있는지 생각해면,
구직자, 구인회사, 채용.... 등등등 많이 있다.
이러한 요소(부품)들이 바로 객체인데 이 객체를 만드는 설계도면이 클래스이다.
위와(구인구직 어플리케이션 프로그래밍 제작) 같이 현실세계에 존재하는
다양한 객체들을 각각 하나하나 추상화 시켜서 클래스로 옮기는 것을 객체지향 프로그래밍(OOP)이라고 한다.
*추상화(abstraction)란?
일반적인 의미의 추상화란 어떤 물체(object)에서 주된 특징을 부각시켜 표현하고, 나머지 부분은 과감하게 생략하는것을 말한다.
어떤 하나의 물체를 대표하는 속성(명사, 멤버변수)과 기능(동사, 메소드)을 추출해내는 것을 객체지향 프로그래밍(OOP)에서 "추상화" 라고 한다.
3. 객체지향의 특징
1) 상속성(Inheritance) : 클래스의 재사용과 소스 코드의 중복제거를 목적으로 하는 기술
2) 추상화(Abstraction) : 프로그램이 필요로 하는 실제 데이터들을 모델링하는 기술
3) 캡슐화(EnCapsulation == 은닉화) : 객체지향의 가장 중요한 데이터 보호 기술
4) 다형성(Polymorphism) : 상속을 이용하여 여러 클래스 타입을 하나의 클래스 타입으로 다루는 기술
'{"CODING": undefind}; > JAVA' 카테고리의 다른 글
[도서관리 프로그램(콘솔구현) 1-1] 회원가입 구현 (0) | 2021.07.06 |
---|---|
16. Wrapper 클래스 (0) | 2021.04.09 |
14. Date, Calendar 클래스 (0) | 2021.02.04 |
13. 버블 정렬(Bubble Sort)(오름차순,내림차순 정렬) (0) | 2021.02.03 |
12. Random 인스턴스로 로또 번호 뽑아보기 (0) | 2021.02.02 |