▶ 객체 지향 프로그래밍 (Object Oriented)
- 모든 데이터를 객체(object)로 취급하여 프로그래밍 하는 방법
- 프로그램을 실제 세상에 가깝게 모델링
- 컴퓨터가 수행하는 작업을 객체들간의 상호 작용으로 표현
- 클래스 혹은 객체들의 집합으로 프로그램 작성
▶ 절차 지향 프로그래밍 (Procedural Oriented)
- 물이 위에서 아래로 흐르는 것처럼 "순차적인 처리"가 중요시 되며 프로그램 전체가 유기적으로 연결되도록 만드는 프로그래밍 하는 방법
- 작업 순서를 표현하는 컴퓨터 명령 집합
- 함수들의 집합으로 프로그램 작성
▷ 커피 자판기의 객체 지향, 절차 지향 프로그래밍
▷ 객체지향 언어의 목적
● 소프트웨어 생산성 향상
- 컴퓨터 산업 발전에 따라 소프트웨어 생명 주기 단축
- 소프트웨어의 재사용과 부분 수정을 통해 소프트웨어를 다시 만드는 부담을 대폭 줄임으로써 소프트웨어 생산성 향상
● 실세계에 대한 쉬운 모델링
- 과거: 수학 계산/통계 처리를 하는 등의 처리 과정, 계산 절차가 중요
- 현재: 컴퓨터가 산업 전반에 활용, 실세계에서 발생하는 일을 프로그래밍 (실세계에서는 절차나 과정보다 일과 관련된 물체(객체)들의 상호작용으로 묘사하는 것이 용이
- 실세계의 일을 보다 쉽게 프로그래밍하기 위한 객체 중심의 객체 지향 언어 탄생
▶ 객체 지향 언어의 특성 (캡슐화, 상속성, 다형성)
▷ 캡슐화
- 메소드(함수)와 데이터를 클래스 내에 선언하고 구현
- 외부에서는 공개된 메소드의 인터페이스만 접근 가능 (외부에서 비공개 데이터에 직접 접근하거나 메소드의 구현세부를 알 수 없음)
- 객체 내 데이터에 대한 보안, 보호, 외부 접근 제한
▷ 상속성
- 유전적 상속 관계 표현
- 자식이 부모의 유전자를 물려받는 것과 유사
(나무는 식물의 속성과 생물의 속성을 모두 가지지만 ,사람은 생물의 속성은 가지지만 식물의 속성 가지고 있지 않음)
● 객체 지향 언어에서의 상속
- 상위 클래스의 특성을 하위 클래스가 물려받음 (상위 클래스: 슈퍼 클래스, 하위 클래스: 서브 클래스)
- 서브 클래스: 슈퍼 클래스 코드의 재사용, 새로운 특성 추가 가능
- 자바는 클래스 다중 상속 없음 (인터페이스를 통해 다중 상속과 같은 효과 얻음)
▷ 다형성
- 동일한 이름의 기능이, 서로 다르게 작동하는 현상
▷ 자바의 다형성 사례
● 메소드 오보로딩
-같은 이름의 메소드가 클래스나 객체에 따라 다르게 동작하도록 구현
-한 클래스 내에 구현된 동일한 이름이지만 다르게 작동하는 여러 메소드
● 메소드 오버라이딩
-슈퍼 클래스의 메소드를 서브 클래스마다 다르게 구현
'[Java]' 카테고리의 다른 글
[Java] 메소드 오버로딩, this 레퍼런스 (0) | 2022.12.28 |
---|---|
[Java] 클래스와 객체 (캡슐화) (0) | 2022.12.28 |
[Java] 예외 처리 (0) | 2022.12.27 |
[Java] 표준 입출력 (0) | 2022.12.26 |
[Java] 자바소스 편집, 이클립스 사용법 (0) | 2022.12.25 |
댓글