본문 바로가기

프로그래밍/Java

메소드

매개변수의 개수를 모를 경우

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는 다른 클래스의 메소드이고 정적 메소드이기 때문에

객체는 생성하지 않더라도 클래스 이름만으로 사용 가능

 

 

 

'프로그래밍 > Java' 카테고리의 다른 글

싱글톤  (0) 2019.12.03
정적 멤버, 메소드  (0) 2019.12.03
this  (0) 2019.11.11
객체  (0) 2019.11.11
문자열과 배열  (0) 2019.11.11