이전 글에서 객체지향 프로그래밍에 대해서 간략히 언급한적 있습니다.

클래스는 c++에서도 존재 했지만 Java에서도 똑같은 역활을 합니다. 클래스를 객체화해서 사용을 합니다.

쉽게 설명해서 집이라는 구조 내부에 세탁기 클래스, 냉장고 클래스, 책상 클래스, 의자 클래스 등등 ... 

클래스의 역할은 이런식으로 객체화 시켜 사용합니다. 

 

그렇다면 객체지향 프로그래밍은 각자의 고유 기능을 수행하면서 다른 객체들과 상호작용하는 프로그래밍입니다 .

 

객체란?

객체는 그 이름에서 볼수 있듯이, 객체 지향 기술의 핵심 개념입니다. 객체는 상태와 동작을 가지고 있습니다.

객체의 상태는 객체의 속성입니다.

객체의 상태 동작은 소프트웨어에서는 각각의 필드와 메소드로 표현 할 수 있습니다. 

변수를 필드라고 합니다.

객체의 동작을 메소드 라고 합니다.

 

객체지향 프로그래밍의 특징 

c++ , java 모든 객체 지향 언어들의 특징이 존재합니다.

캡슐화,상속,다형성,추상화가 객체지향언어들의 대표적인 특징입니다. 

그렇다면 이를 하나씩 알아보도록 하겠습니다. 

 

캡슐화란?

 관련된 데이터와 알고리즘이 하나의 묶음으로 정리 하는 방식으로 이를 캡슐화라고 합니다.

캡슐화의 특징중 하나가 정보은닉을 가지고 있습니다. 즉 객체 내부의 내용을 보호하는 역활을 합니다.

객체는 세부사항이 너무 많아서도 적어서도 안됩니다. 

객체를 세분화 하는것은 개발자의 능력인듯 합니다. ㅠ 더 열심히 해야할것 같습니다.

 

상속이란?

상속은 기존 코드를 재활용하는 기법으로 부모클래스가 자식 클래스의 모든 속성과 동작을 물려줍니다. 

즉 부모 클래스보다 자식클래스의 기능이 더 많습니다. 

 

다형성이란?

 다형성이란 객체가 취하는 동작이 상황에 따라서 달라지는 것을 의미합니다.

예를들어 함수를 같은 이름을 사용하더라도 멤버 변수, 즉 파라미터가 다르면 다르면 같은 이름을 가지는 함수이지만 기능은 다르게 사용할수 있습니다.

이해를 돕기위해서 speak(int english,int korean) ,speak(int english); 함수 이름은 같지만 멤버 변수가 다름니다. 이때 두개의 기능은 각각 모두 다릅니다. 즉 같은 함수여도 중복해서 같은 이름의 함수를 사용할수 있으며 기능을 다르게 사용합니다. 이런걸 보통 오버로딩이라고 합니다.  오버로딩과 오버라이딩에 대해서는 나중에 조금 더 자세하게 다루겠습니다.

 

추상화란?

불필요한 정보는 숨기고 중요한 정보만을 표현함으로써 프로그램을 간단히 만드는 기법입니다.

쉽게 말해서 두가지의 객체의 공통된 기능 ,특징을 잡아서 사용하는 방법입니다. 

이부분은 사실 개발자들의 역량이라고 볼수 있을것 같습니다. 공통된 기능이 무엇인지 특징이 무엇인지 잘 이해하고 중복성을 남발하는것을 방지하기 위함입니다. 

 

다음엔 클래스에 대해서 좀더 자세하게 알아보겠습니다.

'프로그래밍언어 > JAVA' 카테고리의 다른 글

< Web 01>Login  (0) 2020.11.23
JAVA<클래스01> ?  (0) 2019.12.06
JAVA <Array-List/래그드 array>  (0) 2019.11.17
Java<배열 Array>  (0) 2019.11.14
자바 제어문 /반복문  (0) 2019.11.13

+ Recent posts