자바 OOPs 의개념





이번 챕터에서는 OOPs (object oriented programming system, 객체 지향 프로그래밍 시스템) 에 대해서 배워 보도록 하겠습니다. 

객체 지향 프로그래밍은 Inheritance (상속) , data binding ( 데이터 바인딩 ) , polymorphism  ( 다형성 ) 같은 많은 개념을 제공하는 패러다임 입니다. 


Simula ( 시뮬라 )는 첫 번째 객체 지향 프로그래밍 언어로 여겨지고 있습니다. 

모든 프로그래밍 패러다음은 진정 객체 지향 프로그래밍 언어로 알려진 객체로서 나타납니다. 

( 1960년, 노르웨이 DahlNygaard 가 개발 )

 

Smalltalk 는 진정한 객체 지향 프로그래밍 언어로서 여겨지고 있습니다. 

( 1972년, 앨런 케이에 의해 개발, simula의 영향을 받음 )







OOPs (Object Oriented Programming System)


객체는 펜, 의자, 탁자 같은 실제 단어적 실체(entity)를 의미합니다. 

객체 지향 프로그래밍은 클래스와 객체를 사용하는 프로그래밍을 설계하기 위한 방법론 혹은 패러다임입니다. 

아래 제공되는 일부 개념들은 소프트웨어 개발과 유지를 간소하게 합니다.



* Object ( 객체 )

* Class ( 클래스 )

* Inheritanc ( 상속 )

* Polymorphism ( 다형성 )

* Abstraction ( 추상 )

* Encapsulation ( 캡슐화 )







Object 


모든 독립된 것은 객체로 알려진 상태와 동작을 가집니다.

예를 들면, 의자, 펜, 탁자, 열쇠 등등을 들 수 있고, 이것은 물리적이고 논리적 일 수 있습니다.






class


객체들의 집합을 클래스라 부릅니다. 이것은 논리적 실체입니다. 




 

inheritance



부모 객체의 모든 작동 방식과 속성들을 하나의 객체가 획득하는 것이 상속으로 알려져 있습니다.

이것은 재사용 가능한 코드를 제공하고 런타임 다형성을 달성하기 위해 사용합니다.


 


polymorphism


 

하나의 작업(task)을 다양한 방법으로 작업을 수행(perform)할 때 이것을 다형성이라 합니다.

( 다시 말하자면, 동일한 이름의 함수 혹은 변수가 상황에 따라 다른 동작을 할 수 있음을 말합니다. )

 


자바에서 우리는 다형성을 위해 오버로딩 방법과 오버라이딩 방법을 사용할 수 있습니다.

다른 예를 들자면, 어떤 무언가를 말 할 수 있습니다. 


(고양이는 야옹~ 하고 말할 수 있고, 개는 늑대처럼 짖을 수 있습니다.)





Abstraction


내부의 세부 코드를 숨기고, 기능을 보여주는 것을 추상이라고 합니다

예를 들면 휴대폰(우리는 휴대폰의 내부 프로세싱을 알 지 못함)이 있습니다.


자바에서는 추상을 위해 추상적 클래스와 상속 클래스를 사용할 수 있습니다.


 




Encapsulation


코드와 데이터를 한 싱글 유닛 안에 같이 묶는 것을 캡슐화 라고 합니다. 

예를 들면 캡슐(이것은 어떤 약이 다른 약과 같이 포장되어 있음과 동일)이 있습니다.


자바 클래스는 캡슐화의 예시입니다.

모든 데이터 멤버가 개별로 여기에 포함되어 있기 때문에 자바 빈(bean) 은 완전히 캡슐화 된 클래스 입니다.


 



Advantage of OOPs over Procedure-oriented programming language

절차 지향 프로그래밍 언어를 넘어서는 객체 지향 프로그래밍의 장점


1. 만약 코드가 프로젝트 사이즈 만큼 커진다면, 이것을 관리하는 일은 쉬운일이 아닙니다.

 하지만 객체-지향 프로그래밍 시스팀 (이하 OOPs)는 절차 지향 프로그래밍 언어보다 개발과 유지를 더 쉽게 만듭니다.


2. 글로벌 데이터는 어디서나 접속 될 수 있습니다. OOPs는 데이터 바인딩을 제공하지만 절차-지향 프로그래밍은 그렇지 않습니다


3. OOPs 는 실제-세계 이벤트를 더 효과적으로 시뮬레이션 할 수 있는 능력을 제공합니다. 

만약 우리가 객체 지향 프로그래밍 언어를 사용한다면, 우리는 실제 세계 문제의 해결책을 제공할 수 있습니다.





객체 지향 프로그래밍 언어와 객체 기반 프로그래밍 언어는 왜 다른가 ?


객체 기반 프로그래밍 언어는 상속을 제외하고 객체 지향의 모든 특성을 따라 갑니다. 

자바 스크립트와  VB 스크립트는 객체 기반 프로그래밍 언어의 예 입니다.
















영어원문내용출처 : http://www.javatpoint.com/

번역,의역 및 작성 : 초코토끼

검수 : 개발토끼

오역 및 오타의 지적은 겸손히 받겠습니다.


 

'IT Story > about Java' 카테고리의 다른 글

Java String compare [자바 문자열 비교]  (6) 2015.10.05
자바 문자열 ( Java string )  (0) 2015.10.01
JDK, JRE 그리고 JVM의 차이  (0) 2015.09.27
유니코드(Unicode ) 시스템  (0) 2015.09.27
자바(JAVA)의 특징  (0) 2015.09.24

+ Recent posts