Notice
Recent Posts
Recent Comments
Link
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

mommy computer

메소드(Method) 본문

Programming/Understanding

메소드(Method)

Dahn 2016. 10. 15. 14:46

객체지향 프로그래밍(OOP:object-oriented programming)에서의 클래스는 같은 종류의 집단에 속하는 속성(attribute)과 행위(behavior)를 정의하는 것인데, 클래스에 의해 만들어지며 프로그램 런타임에 실제 메모리 상에 할당되는 객체를 인스턴스라고 한다. 메소드란 클래스 내부에 정의되어 있으며, 인스턴스가 클래스와 관련하여 어떻게 행동하는지의 동작을 정의하는 것이다. 

메소드는 기존의 프로그래밍 언어에서의 함수와 대응되는 개념으로, 객체의 상태 및 속성 변경과 같이 객체에 대해 수행할 수 있는 작업을 정의한다. 예를 들어, 엘리베이터라는 객체는 올라감(up), 내려감(down)이라는 메소드를 가질 수 있다. 또한 메소드를 통하면 런타임 시에 주어진 클래스 인스턴스 내에 저장된 데이터에 접근하고, 값을 변경하는 등의 다양한 기능이 수행 가능하다. 자주 사용되는 내용의 코드를 메소드로 정의하고 사용하면 코드의 양이 줄고 코드의 관리 및 유지보수가 용이하다. 

메소드가 프로시저 호출과 크게 다른  두 가지는 다음과 같다. 메소드는 오버라이딩(overriding)을 제공한다. 오버라이딩이란 상위 클래스가 가지고 있는 메소드가 하위 클래스로 상속될 때 이를 재정의하여 사용할 수 있도록 하는 기능이다. 

[오버라이딩의 예]  


class Mammal{     

  public void move(){       

    System.out.println("Mammals move");    

  } 

}  

class Cat extends Animal{     

  public void move(){       

    System.out.println("Cats can jump");    

  } 

}

메소드의 또 다른 특징은 외부에서 다른 클래스들이 객체의 데이터 속성에 접근하고 수정할 때 그 내용이 내부적으로 어떻게 구성되었는지 숨길 수 있도록 하는 인터페이스, 즉 캡슐화(encapsulation)를 제공한다는 것이다. 캡슐화란 객체 내부의 상태를 숨기고 모든 상호 작용을 객체의 메소드를 통해 이루어지도록 하는 것으로 객체지향 프로그래밍의 주요 원리이다.

또한 메소드는 매개변수의 수와 타입이 다르다면 같은 이름의 메소드를 중복 정의하여 사용할 수 있도록 오버로딩(overloading)하여, 객체지향 프로그래밍 언어에서 하나의 메소드나 클래스가 다양한 방법으로 동작하는 것(다형성)을 지원한다.

[네이버 지식백과] 메소드 [method] (두산백과)


Comments