[JAVA] 객체지향 개발과 관련 용어[JAVA] 객체지향 개발과 관련 용어

Posted at 2019. 12. 27. 17:19 | Posted in JAVA
반응형




■ 객체지향 개발과 관련 용어





#01. 클래스( Class )


"상태"와 "행위"를 갖는 자바의 기본 단위를 의미한다.




#02. 상태( State )와 행위( Behavior )


어떤 사물을 나타낼 때에는 상태와 행위로 구분하여 표시하는 것이 가능하다.


자바에서 "상태"는 클래스나 인스턴스 변수로, "행위"는 메소드로 표현할 수 있다.




#03 캡슐화( Encapsulation )


연관된 "상태"와 "행위"를 결정하는 기능을 묶어 주는 것을의미한다.


이렇게 묶어주면 기능을 클래스 밖에서 접근 가능한 대상을 제한하는 정보 은닉(Information Hiding)이 가능하다.


그리고, 하나의 객체를 위한 코드가, 다른 객체를 위한 코드와 무관하게 수행할 수 있는 모듈화 modularity가 가능해진다.


이처럼 묶여 있는 가장 작은 단위를 클래스라고 보면 된다.




#04. 매개변수( Parameter )와 전달인자( Argument )


함수에서 다른 함수를 호출할 때 전달하는 값을 매개변수 or 전달인자라고 한다.


자바에서는 함수를 호출할 때 넘겨주는 매개변수 or 전달인자가 여기에 속한다.


// 아래 코드에서 newState가 메시지를 의미하는 매개 변수이다.




#05. 객체(Object)


클래스는 사물의 단위를 의미하지만, 객체는 각 사물을 의미한다.


예를 들면 "블로그"는 클래스, "현대마법의 IT공방"은 블로그 중의 하나를 의미하는 객체라고 볼 수 있다.



※ 클래스 main( ) 메소드에서 가장 첫 줄에 생성한 거들이 바로 객체이다.




#06. 상속( Inheritance )


부모에 선언된 변수와 메소드에 대한 사용권을 갖는 것을 말한다.


즉, 클래스 선언시 extends를 사용하여 확장하거나, implements를 사용하여 구현한 경우가 여기에 속한다.




#07. 다형성( Polymorphism )


이 세상에 부모와 자식이 똑같을 수가 없고, 자식들도 같을 수가 없다.


마찬가지로 자바에서는 부모 클래스에서 파생된 자식 클래스들의 기능이 각기 다를 수 있다는 것을 의미한다.



#08. 오버라이딩( Overriding )


부모 클래스에 선언되어 있는 메소드와 동일한 선언을 갖지만 구현이 다른 것을 의미한다.


자바에서 다형성을 제공하는 하나의 방법이 바로 Overriding이다.



이러한 부모 클래스가 있을 경우.



method( ) 부모 클래스의 method( )를 덮어 쓴 Overriding 처리다 된것이다.


즉 method( )를 실행하면 Parent(부모) 클래스의 method( )가 아닌 Child(자식) 클래스의 method( )가 실행된다.




#09. 오버로딩( Overloading )


메소드의 이름은 동일해도, 매개 변수들을 다르게 하는 것을 의미한다.


그래서, 동일 한 기능은 하지만,


메소드에 넘겨줄 수 있는 매개 변수의 타입을 다양하게 함으로써


메소드를 사용하는 다른 개발자가 쉽게 구현할 수 있게 해준다.



getData( ) 메소드의 매개 변수에 따라서 셋 중에 호출되는 메소드가 달라진다.


이렇게 구현한 것이 바로 오버로딩 이다.



반응형
//