● 메소드(method)
- 이름 뒤에 소괄호()
- 어떠한 기능을 한다.
● 메소드 사용 이유
- 코드를 재사용하기 위해 사용한다.
● 메소드 선언
- 클래스 안에서, 메인메소드 밖에서 선언한다.
public static 리턴타입 메소드명() {
수행할문장;
}
● 메소드 사용(호출)
- 클래스명.메소드명();
● 매개변수와 return
- 리턴타입 부분에는 return 옆에 존재하는 값의 자료형을 써준다.
- 함수에 return 존재 : 해당 함수 호출의 결과를 return 옆에 써있는 값으로 간주하고 사용하면 된다.
- 매개변수로 받아와야할 값이 있다면 매개변수를 설정한다.
- 해당 메소드 사용 결과를 변수에 저장하거나 연산해야하는 경우에는 return을 설정해준다.
1. 매개변수 X, return X
public static void 메소드명() {
기능;
}
2. 매개변수 O, return X
public static void 메소드명(자료형 변수명, ...) {
기능;
}
3. 매개변수 X, return O
public static 리턴타입 메소드명() {
기능;
return 값;
}
4. 매개변수 O, return O
public static 리턴타입 메소드명(자료형 변수명, ...) {
기능;
return 값;
}
실습(메소드(1))
1. 메소드를 선언하여 출력하기
public class MethodTest {
//메소드 선언 : 클래스 안쪽, main 메소드 바깥쪽
public static void printName() {
for(int i = 0; i < 5; i++) {
System.out.println("홍길동");
}
}
public static void printName2(String name) {
for(int i = 0; i < 5; i++) {
System.out.println(name);
}
}
public static void printName3(String name, int count) {
for(int i = 0; i < count; i++) {
System.out.println(name);
}
}
public static void main(String[] args) {
MethodTest.printName(); // 메소드 사용 : 클래스명.메소드명();
System.out.println("프로그램 제작중");
MethodTest.printName2("김철수");
System.out.println("프로그램 제작중");
MethodTest.printName3("김영희", 3);
System.out.println("프로그램 제작중");
}
}
![](https://blog.kakaocdn.net/dn/NP7g9/btrqoaK341C/GaHuIt2CF87hkg96kjjc6k/img.png)
실습(메소드(2))
1. 두 수의 더한 값을 계산하는 메소드
public class Calc {
public static void add(int num1, int num2) { // void : return 타입이 없다.
System.out.println(num1 + num2);
}
public static void main(String[] args) {
Calc.add(10, 20);
}
}
![](https://blog.kakaocdn.net/dn/lW8hr/btrquigYq4e/WIIKjqXjFaWwIK5TrYJljK/img.png)
2. 메소드를 이용하여 연산하기
- 메소드를 이용해 연산을 진행하려면 return을 사용해야 한다.
public class Calc {
public static int addReturn(int num1, int num2) { // int : return 타입이 int이다.
return num1 + num2;
}
public static void main(String[] args) {
System.out.println(Calc.addReturn(10, 20) / 2);
}
}
![](https://blog.kakaocdn.net/dn/Db0FA/btrqoaxvUZM/UCBZxNKDiDgWXOoyy0Hhk0/img.png)
실습(메소드(3))
1. 사용자에게 이름과 반복 횟수를 입력 받아 출력하는 메소드
import java.util.Scanner;
public class MethodTask {
public static void printName(String name, int cnt) {
for (int i = 0; i < cnt; i++) {
System.out.println(name);
}
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("이름 입력 >> ");
String name = sc.nextLine();
System.out.print("반복 횟수 >> ");
int cnt = sc.nextInt();
MethodTask.printName(name, cnt);
}
}
![](https://blog.kakaocdn.net/dn/bhdGcO/btrqtU1J3sU/ZTuUf41U0aTbA8RhE7MKM0/img.png)
2. 매개변수로 넘겨준 문자타입의 변수에 저장된 문자가 대문자인지 아닌지 판단하는 메소드
public class MethodTask {
public static boolean isCapital(char ch) {
if(ch >= 'A' && ch <= 'Z') { // return을 만나면 메소드는 즉시 종료된다.
return true;
} else {
return false;
}
}
public static void main(String[] args) {
char temp = 'a';
if(MethodTask.isCapital(temp)) {
System.out.println("대문자입니다.");
} else {
System.out.println("대문자가 아닙니다.");
}
}
}
![](https://blog.kakaocdn.net/dn/uZefw/btrqtUHrdkE/lLckMggXGORbLZ40wZGxg1/img.png)
3. 배열을 출력하는 메소드
public class MethodTask {
public static void printAr(int[] ar) {
System.out.print("{");
for(int i = 0; i < ar.length;i++) {
if(i == ar.length -1) {
System.out.print(ar[i]);
break;
}
System.out.print(ar[i] + ", ");
}
System.out.println("}");
}
public static void printAr(String[] ar) {
System.out.print("{");
for(int i = 0; i < ar.length;i++) {
if(i == ar.length -1) {
System.out.print(ar[i]);
break;
}
System.out.print(ar[i] + ", ");
}
System.out.println("}");
}
public static void main(String[] args) {
int[] scores = {10, 20, 30};
String[] names = {"홍길동", "김철수", "김영희"};
MethodTask.printAr(scores);
MethodTask.printAr(names); // 메소드 오버로딩
}
}
![](https://blog.kakaocdn.net/dn/bt9wfb/btrqpuCymdL/obTwpMaN1BuxcZc17papC1/img.png)