JAVA - 메서드 오버로딩. 가변인자

가변인자 :

인자값이 정해지지 않고 보다 많은 수의 인자를 필요로 하는 경우, 오버로딩으로 메서드를 작성하게 되면 코드의 길이가 길어지고 해석이 어려워지는 단점이 있다. 그래서 사용하는것이 가변인수로, 가변인수는 인자값을 개수과 관계없이 받을수 있으면 메서드 내에서 배열의 형태로 불러와 사용 가능하다.


사용법 :

  • 메서드이름(데이터형 ... 변수명) { }
  • ex) add(int ... num) { }



적용 예제 :

가변인수를 사용하지 않을경우 다음과 같이 메서드를 작성하게 될것이다.


위 코드같은 경우에는 별로 길지도 않고 인자값이 그렇게 많이 필요하지 않기 때문에 이렇게 쓰는편이 실행 속도 면에서 오히려 더 좋을것이다. 다만, 코드가 더욱 복잡해지고 좀더 많은 양의 인자값을 필요로 하게 된다면 다음처럼 가변인자를 사용하는게 좋다.






(추가) 가변인자 또한 일반 인자를 가지는 메서드와 오버로딩이 가능하다. 일반인자를 가지는 메서드로 오버로딩을 할 경우 메서드를 불러올때 일반인자 조건을 만족하면 가변인자 대신 실행되게 되고 가변인자만 사용할때보다 프로그램의 속도가 향상되게 된다. 따라서 주로 메서드에 인자값을 1,2개만 넣어주고 가끔 그 이상을 넣어서 쓰는 메서드일 경우 인자 1개짜리, 2개짜리는 따로 오버로딩 해두고 나머지만 가변인자로 만들어주면 프로그램의 효율이 올라가게 된다.

댓글