[JAVA] method
자바는 모든 것이 객체의 요소들이므로 method라고 부른다.
c에서의 함수와 비슷하다.
우리가 함수를 왜 쓰는지를 생각해보면 좋을 것 같다.
1. 같은 동작을 여러번 할 때.
2. 코드의 가독성을 높이기 위해
+ 이제부터 디버깅 포인트는 main의 끝으로 지정하고 하자.
step over는 그냥 다음 라인을 실행하고
step into는 라인에 함수가 있다면 함수로 들어간다.
step out을 하면 into에서 빠져나와 다음 line을 살펴보게 된다.
-특징들..
특징을 적기 앞서 한 가지 유의할 것이 있다. method내에서 외부 변수의 값을 바꾸는 것은 좋지 않다. 원본을 변화시키는 것은 좋은 코드가 아님을 유의하자. 값만 카피해서 사용하는 것이 좋다.
1. static
main method밖에서 method나 변수를 사용할 때 static을 사용하는데
c에선 해당 함수명을 해당 소스파일에서만 사용하게 해서 외부 소스파일에 같은 이름이 있어도 충돌이 일어나지 않게 해준다.
다만 외부의 변수를 변화시키는 코드는 좋은 코드가 아님을 유의하자.
2. 반환값.
c와 마찬가지로 1개만 반환 가능하므로 여러 개를 반환하고 싶을 때에는 배열이나 객체에 묶어서 반환한다.
3. 가변인자를 받을 수 있다.
static void testMethod(int... numbers)
{
}
numbers는 인자를 받으면 배열로 여겨지게 된다. 그래서 배열을 인자로 받을 수도 있다!!
다만, parameter순서는 맨 마지막이어야 하고 여러 개의 가변인자 parameter를 사용할 수 없다.
왜냐하면 가변인자의 길이를 명확하게 알 수 없기 때문.
4.method overload
파라미터의 타입, 갯수, 순서에 따라 컴파일러가 다른 method인 것을 파악하여 알맞은 메소드를 호출해준다.
단, 반환값을 통한 구별은 불가능하다.
5. recursion
method를 재귀호출 하는 것은 코드가 간편하다. 하지만 난해해질 수 있고 stack이 쌓이니까 메모리를 많이 사용한다.
왠만하면 지양.
method의