ToBe끝판왕

[ JAVA ] 메서드 본문

■ 프로그래밍 SKILLS/JAVA

[ JAVA ] 메서드

업그레이드중 2022. 5. 17. 11:34
반응형

 


 

메서드( Method )

▶  정의

•  메서드는 함수( function )의 한 종류

•  작업을 수행하기 위한 명령문의 집합

•  값을 입력받아서 처리하고 결과를 돌려준다.

   ( 입력 받는 값이 없을수도 있고, 돌려주지 않을 수도 있다. )

•  객체의 동작에 해당하는 중괄호 { } 블록 의미

•  메서드는 선언부와 구현부로 이루어져 있다.

   ( 클래스 영역에만 정의 가능 )

 

// 메서드 선언

리턴타입 메서드이름 ( 타입변수명 , ... ) {     // 선언부
    실행코드                                   // 구현부
}


ex)
int add( int a , int b ) {      // 반환값이 없는경우 리턴타입 대신 void 사용 
   int result = a + b;
   return result;               // 호출한 메서드로 결과를 반환
}

 

 

※ 구성요소

•  리턴타입 : 메서드가 리턴하는 결과의 타입을 표시

•  메서드 이름 : 메서드의 기능이 드러나도록 식별자 규칙에 맞게 네이밍

•  매개변수 선언 : 메서드를 실행할 때 필요한 데이터를 받기위한 변수 선언

•  메서드 실행 볼록 : 실행될 코드 작성

 

▶  return 문

현재 실행중인 메서드를 종료하고 호출한 메서드로 되돌아간다

1) 반환값이 없는 경우 : return문만 써주면 된다. ( 리턴타입으로 void 를 사용 )
   return;           // 메서드를 강제 종료하는 역할

2) 반환값이 있는 경우 : return문 뒤에 반환값을 지정해 주어야 한다.
  return 반환값;

// 리턴타입과 반환값의 타입이 일치해야 한다.

 

 

▶  메서드 호출

호출방법

· 참조변수.메서드이름();                  // 메서드에 선언된 매개변수가 없는 경우
· 참조변수.메서드이름( 값1, 값, ... );    // 메서드에 선언된 매개변수가 있는 경우


※외부클래스에서 다른 메서드를 호출할 경우에는 먼저 호출할 메서드가 정의된
객체를 생성한뒤 호출해야 한다.

ex) 객체 내부에서 호출
void method1(String name, int age) {
    System.out.println("호출한 사람의 이름은 "+name+"이고 나이는 "+age+"입니다.");
}

void method2() {
    method1("홍길동", 80);
}

ex) 객체 외부에서 호출
public class MethodEX {
    void Print() {
        System.out.println("호출완료");
    }
}

public static void main(String[] args) {
    MethodEX a = new MethodEX();    // 객체 생성
    a.Print();                      // 생성된 객체로부터 MethodEX클래스 접근해서 
                                    // 메소드 호출
}

 

 

▶  메서드 오버로딩( method overloading )

하나의 클래스에 같은 이름의 메서드를 여러개 정의하는 것

 

•  조건

- 메서드의 이름이 같아야 한다.

- 매개변수의 개수 또는 타입이 달라야 한다.

- 매개변수는 같고 리턴타입이 다른 경우는 오버로딩 성립 X

  ( 리턴타입은 아무런 영향 X )

 

•  목적

매개변수 값을 다양하게 받아 처리할수 있도록 하기 위함

메서드 오버로딩 예

ex1) System.out.println 메서드
// 메서드의 이름이 같고 다른 타입의 변수를 출력
void println()
void println( boolean x )
void println( char x )

ex2)
// 매개변수의 타입이 다르므로 오버로딩 성립
long add( int a, long b ) { return a+b; }
long add( long a, int b ) { return a+b; }

 

 

 

 

반응형
Comments