매서드의 인자를 지정하지 않고, 임의로 개수를 받아들이는 경우.
가변인자는 내부적으로 배열을 생성해서 사용한다 (향상된 for문 str, 인자값으로 배열 넣어짐)
오버로딩하면 컴파일러는 어떤 메소드를 사용 해야하는지 구분을 못한다. 그러므로 컴파일 에러가 난다.
가능하면 가변인자를 사용한 메소드는 오버로딩을하지 않는 것이 좋다.
일반 매개변수
class Test {
int getMax(int x, int y) { // getMax()에는 두 개의 인자만 들어올 수 있다.
...
}
}
가변인수
class Test {
int getMax(int ... name ) { // getMax()에는 임의의 인자가 들어올 수 있음
...
}
}
가변인수를 이용하여 최대값 구하기.
class Maxs {
int getMax(int ... name) { // 가변 인수가 들어옴
int max=0;
for(int i=0; i<name.length; i++) { // 들어올 인자의 갯수까지
if(i==0) {
max=name[0]; // name[] 배열의 첫번째 값을 0으로 할당
}
if(max < name[i]) {
max = name[i];
}
}
return max;
}
}
public class ex1 {
public static void main(String[] args) {
Maxs vt = new Maxs(); // 객체 vt 생성
// vt 객체는 Maxs 클래스의 필드 내용을 모두 가지고 있음.
System.out.println("2,5,7,0,1 : " + vt.getMax(2,5,7,0,1));
System.out.println("100,45,11 : " + vt.getMax(100,45,11));
System.out.println("10 : " + vt.getMax(10));
}
}
JAVA 메서드 호출 방식(값 호출, 주소 호출) static, abs() 절대값 (0) | 2022.07.26 |
---|---|
JAVA Overloading 오버로딩 Overriding 오버라이딩 (0) | 2022.07.26 |
JAVA 개념 ( class, instance, parameter, argument, 상속, 캡슐화, 다형성, 인터페이스, 추상 클래스 ) (0) | 2022.07.26 |
JAVA for, while, break, continue, label 를 이용한 예문 (0) | 2022.07.26 |
JAVA Scanner class, 난수(random class, Math.random()), for 문 트리만들기 (0) | 2022.07.22 |