매개변수의 개수를 모를 경우
int[] values
or
int ... values
public class Computer{
int sum1(int[] values){
int sum=0;
for(int i=0;i<values.length;i++){
sum += values[i];
}
return sum;
}
int sum2(int ... values){
int sum=0;
for(int i=0;i<values.length;i++){
sum += values[i];
}
return sum;
}
}
메소드 오버로딩
매개 변수의 타입, 개수, 순서 중 하나 이상이 달라야함
객체내부와 외부에서 메소드를 사용할 때
public class A{
void method1(){
System.out.println("Class A method");
}
static void method2(){
System.out.println("static method");
}
public static void main(String[] args){
A a= new A();
a.method1();
//method1();오류
a.method2();
method2();
}
}
public class B{
public static void main(String[] args){
A a = new A();
a.method1();
A.method2();
//method2();오류
a.method2();
}
}
Class A에서
method1는 인스턴스 메소드이기 때문에
객체를 생성하고 사용가능
method2는 정적 메소드이기 때문에
객체를 생성하지 않고도 사용가능
Class B에서
Class A의 메소드를 사용 할 경우
method1은 마찬가지로 객체를 생성 후 사용가능
method2는 다른 클래스의 메소드이고 정적 메소드이기 때문에
객체는 생성하지 않더라도 클래스 이름만으로 사용 가능