본문 바로가기

Java

[Java] 17

메소드(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("프로그램 제작중");
	}

}

 

결과

실습(메소드(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);
	}

}

 

결과

 

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);
	}

}

 

결과

 

​​

실습(메소드(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);
	}

}

 

결과

 

 

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("대문자가 아닙니다.");	
		}
	}

}

 

결과

 

 

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);  // 메소드 오버로딩
	}

}

 

결과

 

'Java' 카테고리의 다른 글

[Java] 19  (0) 2022.01.17
[Java] 18  (0) 2022.01.13
[Java] 16  (0) 2022.01.07
[Java] 15  (0) 2022.01.06
[Java] 14  (0) 2022.01.03