자바에서 클래스는 멤버(member)로 속성을 표현하는 필드(field)와 기능을 표현하는 메소드(method)를 가집니다.
그중에서 메소드(method)란 어떠한 특정 작업을 수행하기 위한 명령문의 집합이라 할 수 있습니다.
사용하는 이유 : 중복되는 코드의 반복적인 프로그래밍을 피할 수 있기 때문입니다.
문법
접근제어자 (반환타입) 메소드이름(매개변수목록=파라미터) { // 선언부
// 구현부
}
1. 접근 제어자 : 해당 메소드에 접근할 수 있는 범위를 명시합니다.
2. 반환 타입(return type) : 메소드가 모든 작업을 마치고 반환하는 데이터의 타입을 명시합니다.
3. 메소드 이름 : 메소드를 호출하기 위한 이름을 명시합니다.
4. 매개변수 목록(parameters) : 메소드 호출 시에 전달되는 인수의 값을 저장할 변수들을 명시합니다.
5. 구현부 : 메소드의 고유 기능을 수행하는 명령문의 집합입니다.
package chap_06;
public class _01_Method {
//메소드 정의
public static void sayHello() {
System.out.println("안녕하세요 메소드입니다.");
}
public static void main(String[] args) {
//메소드 호출
System.out.println("메소드 호출 전");
sayHello();
System.out.println("메소드 호출 후");
}
}
//메소드 호출 전
//안녕하세요 메소드입니다.
//메소드 호출 후
파라미터는 메소드를 호출할 때 같이 끼워보내는 내용들을 말하는 것! 메소드 수행에 필요한 입력값을 저장하는 변수. return값이 없는 경우, 반환 타입은 void.
package chap_06;
public class _02_Parameter {
//전달값이 있는 메소드
public static void power(int number){ //parameter, 매개변수
int result = number * number;
System.out.println(number + " 의 2승은 " + result);
}
public static void powerByExp(int number, int exponent){
int result = 1;
for (int i = 0; i < exponent; i++) {
result *= number;
}
System.out.println(number + "의 " + exponent + "승은 " + result);
}
public static void main(String[] args) {
//전달값, 파라미터
//2 -> 2 * 2 = 4 를 주는 거듭제곱해주는 메소드 만들 것.
power(2);
power(3);
//power메소드를 수행하는데 넘버는 2를 넣어서 활용한다.
powerByExp(2,3); //2 * 2 *2
powerByExp(3,3); //2 * 2 *2
}
}
/*2 의 2승은 4
3 의 2승은 9
2의 3승은 8
3의 3승은 27*/
메인 메소드 안에서 메소드를 실행하려면 static을 붙이면 된다.
public static int sub(int num1, int num2) {
return num1 - num2;
}
public static void main(String[] args) {
int result = sub(1, 2);
System.out.println(result);
}