■ Programming 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; }
반응형