검수요청.png검수요청.png

"메소드"의 두 판 사이의 차이

위키원
이동: 둘러보기, 검색
잔글
(메소드의 종류)
18번째 줄: 18번째 줄:
  
 
==메소드의 종류==
 
==메소드의 종류==
*추상 메소드는 구현 없이 선언만 되어있는 메소드로 서브클래스는 반드시 메소드의 구현을 포함해야 한다. 추상 메소드는 언어에서 인터페이스를 명시하기 위해 사용된다. 예를 들어 다음 추상메소드를 사용하여 서브클래스에서 메소드를 직접 구현할 수 있다.<ref>위키백과, <[https://ko.wikipedia.org/wiki/%EB%A9%94%EC%86%8C%EB%93%9C_(%EC%BB%B4%ED%93%A8%ED%84%B0_%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D) 메소드(컴퓨터 프로그래밍)]>, <<위키백과>>, 2020-04-24 </ref>
+
*[[추상 메소드]]는 구현 없이 선언만 되어있는 메소드로 서브클래스는 반드시 메소드의 구현을 포함해야 한다. 추상 메소드는 언어에서 인터페이스를 명시하기 위해 사용된다. 예를 들어 다음 추상메소드를 사용하여 서브클래스에서 메소드를 직접 구현할 수 있다.<ref>위키백과, <[https://ko.wikipedia.org/wiki/%EB%A9%94%EC%86%8C%EB%93%9C_(%EC%BB%B4%ED%93%A8%ED%84%B0_%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D) 메소드(컴퓨터 프로그래밍)]>, <<위키백과>>, 2020-04-24 </ref>
  
 
  // [[추상 클래스]](abstaract class)에서 추상 메소드의 정의
 
  // [[추상 클래스]](abstaract class)에서 추상 메소드의 정의
33번째 줄: 33번째 줄:
 
  }
 
  }
  
* 상태변이 메소드는 자신을 호출한 객체의 상태를 변화시킬 수 있는 메소드이다.
+
* [[상태변이 메소드]]는 자신을 호출한 객체의 상태를 변화시킬 수 있는 메소드이다.
* 접근 메소드는 단순히 객체의 상태에 접근할 수 있는 메소드이다.
+
* [[접근 메소드]]는 단순히 객체의 상태에 접근할 수 있는 메소드이다.
* 정적 메소드는 클래스의 [[인스턴스]] 없이 데이터에 접근할 수 있는 권한을 가진다.
+
* [[정적 메소드]]는 클래스의 [[인스턴스]] 없이 데이터에 접근할 수 있는 권한을 가진다.
  
 
{{각주}}
 
{{각주}}

2020년 8월 5일 (수) 09:54 판

메소드(method)란 객체 지향 프로그래밍(OOP)에서 클래스(class) 내부에 정의된 함수(函數, function)를 말한다. 멤버 함수라고도 한다. 메서드라고도 쓴다.

개요

메소드는 클래스 내부에서 특정한 작업을 처리하는 역할을 한다. 입력값이 있을 경우 그 값을 받아서 처리한 후 결과값이 있으면 되돌려준다. 클래스 내부에 정의되어 있는 메소드는 객체 내에 저장된 데이터에 접근하고, 객체 간의 통신을 가능하게 한다. 예를 들어, 다음 메소드를 사용하여 a와 b의 합계를 구할 수 있다.

int add(int a, int b) {
    int c=a+b;
    return c;
    }

일반적으로 객체에서 속성(attribute)은 데이터 값을 표시하기 위해 사용하고, 메소드는 특정한 동작을 수행하기 위해 사용한다. 메소드와 관련된 중요한 개념으로 오버로딩(overloading)과 오버라이딩(overriding)이 있다.

메소드 호출

메소드 호출이란 만들어진 메소드를 실행하는 것으로 변수를 다른 함수의 인자로 넘겨줄 있으며 호출 방식에 따라 Call by value와 Call by reference가 있다.[1]

  • Call by value : 값에 의한 호출
  • Call by reference : 참조에 의한 호출

메소드의 종류

  • 추상 메소드는 구현 없이 선언만 되어있는 메소드로 서브클래스는 반드시 메소드의 구현을 포함해야 한다. 추상 메소드는 언어에서 인터페이스를 명시하기 위해 사용된다. 예를 들어 다음 추상메소드를 사용하여 서브클래스에서 메소드를 직접 구현할 수 있다.[2]
// 추상 클래스(abstaract class)에서 추상 메소드의 정의
abstract class Rectangle{
	abstract int rectangle(int, h int w);
}
// 추상 클래스(abstaract class)를 상속받은 Main 클래스에서 추상 메소드 구현
public class Main extends Rectangle{
	@Override
	int rectangle(int h, int w){
		return h*w;
	}
}

각주

  1. 여름숲_, <Call by value와 Call by reference>, <<개인블로그>>, 2017-05-31
  2. 위키백과, <메소드(컴퓨터 프로그래밍)>, <<위키백과>>, 2020-04-24

참고자료

같이 보기


  검수요청.png검수요청.png 이 메소드 문서는 프로그래밍에 관한 글로서 검토가 필요합니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 문서 내용을 검토·수정해 주세요.