c23 [Java] 객체 지향
본문 바로가기
[Java]

[Java] 객체 지향

by Jarvis2304 2022. 12. 27.

▶ 객체 지향 프로그래밍 (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

댓글