Language/Java

[Java]메소드(Method)와 오버로딩(Overloading)의 사용법 및 예제

Chung-A 2020. 8. 26. 17:39

[Java]메소드(Method)와 오버로딩(Overloading)의 사용법 및 예제

1.선언 및 호출하기

메소드도 변수와 같이 클래스 내에 선언 및 정의한 뒤, 필요할 때 호출해서 사용한다.

메서드 선언 및 정의

1.1 Method 선언부

선언부에는 접근자-반환할 자료형-메소드 명-매개변수 순서대로 넣어준 뒤 

정의 할 내용을 다음 { } 괄호 안에 넣어준다.

 

1) 접근자

해당 메소드를 외부에서 접근가능할 지의 여부를 결정한다.

 

2) 반환 형

반환 자료형에서 void는 아무것도 반환하지 않겠다는 것을 의미하고

그 외에는 기본자료형부터 레퍼런스 자료형까지 모두 반환 가능하다.

 

3) 메소드명

메소드 명은 이 메소드가 어떤 기능을 하는 메소드인지 이름만 보고 알 수 있도록 짓는게 좋다.

그리고 Java에서는 메소드 명의 첫글자는 소문자로 쓰는게 관행이다.

 

4) 매개변수

해당 메소드를 호출할 때 넘겨줘야 할 값들이 있다면 여기서 넘겨줄 수 있다.

세부 내용은 이 포스팅의 [2. 매개변수] 항목에서 다루었다.


1.2. Method 정의부

정의부에서는 이 함수가 호출되었을 때 실행할 코드들을 넣어준다.

만약 선언할 때 반환형이 void라면 위의 예시처럼 아무것도 반환하지 않아도 되지만

명시해준 반환형이 있다면 아래의 예시처럼 무엇인가 반환해줘야한다.

 

 

 


2. 매개변수(Parameter)

매개변수를 이용하면 메소드를 호출할 때 동시에 데이터를 전달할 수 있다.

 

메소드를 호출하면서 동시에 매개변수를 넘겨주고 싶을 때는 아래와 같이 하면 된다.

public void getInfo(int i,boolean b,String s){
	System.out.printf("parameter i: %d, y: %b, s: %s",10,true,"hello");
}

매개변수로 int,boolean,String들을 받아온 뒤 출력하는 예제이다.

매개변수로 가져오고 싶을 때는 ()괄호안에 자료형 변수명 순서로 적어주면 된다.


3. 오버로딩(Overloading)-중복메소드 

메소드를 만들 때, 완전히 동일하게 중복되있는 메소드를 만들 수 없다.

하지만 이름은 같고 매개변수의 개수나 타입이 다른 메소드를 여러개 만들수는 있다.

 

아래는 오버로딩의 예시이다.

    //hello 메서드
    public void hello(){
        System.out.println("메서드입니다.");
    }
    
    //매개변수가 1개인 hello 메소드
    public void hello(int i){
        
    }
    
    //매개변수가 1개지만 타입이 다른 hello 메소드
    public void hello(boolean i){

    }
    
    //매개변수가 2개인 hello메소드
    public void hello(int i,boolean b){
        
    }
    
    //오류-반환형만 다른 메소드는 안됨.
    public String hello(){
        return "hello";
    }

위와 같이 이름이 같지만 매개변수 갯수나 타입이 다르면

동일한 이름의 메소드를 여러개 만들 수 있다.

 

보통 한 기능을 하지만 매개변수가 여러 경우의 수로 들어올 수 있을 때 사용한다.

 

단, 위의 예시처럼 반환형만 다르거나 접근제어자가 다른 것으로는

오버로딩으로 인식되지 않으니 주의하자.

 


Reference

이 포스팅은 아래의 강좌를 참고하여 만들어졌습니다.


  • 자바 프로그래밍 입문 강좌 (renew ver.) - 초보부터 개발자 취업까지!!

https://www.inflearn.com/course/%EC%8B%A4%EC%A0%84-%EC%9E%90%EB%B0%94_java-renew/dashboard

 

자바 프로그래밍 입문 강좌 (renew ver.) - 초보부터 개발자 취업까지!! - 인프런

기본적이고 충실한 기본 개념을 통해 여러가지 예제들을 실습도 제공됩니다. 학사 관리 프로그램, 어린이집 식대관리, 로봇장난감 등 여러가지 실제로 만들어보는 자바 코딩을 배울수 있습니다

www.inflearn.com