글 작성자: 취업중인 피터팬
728x90
기본 환경
JDK : 1.8.0_261 버전
JRE : 1.8.0_261 버전
JAVA VERSION : 8 업데이트 261
Eclipse IDE VERSION : 2020-06버전

 

목표

자바에서 사용하는 메소드의 기초에 대해 이해한다.


 

코드
package ex05method;

import java.util.Scanner;

/*
 메소드의 규칙
 -Java에서 main메소드는 무조건 public static void로 
 	선언하기로 약속되었다
 - static으로 선언되 메소드는 static 으로 선언된 메소드만 호출할 수 있다.
 - 메소드 호출 후 반환된 값은 항상 호출한 위치로 반환된다. 이때 메소드는
 	메모리에서 소멸된다.
 - 반환값이 없는  void형 메소드도 실행이 완료되면 호출한 위치로
 	실행의 흐름이 돌아돈다.
 */
public class E01MethodBasic {
	
	/*
	 메소드 정의 1 : 반환타입0, 매개변수0, 형태로 정의
	 		-> 두개의 정수를 전달받아 합의 결과를 반환한다.
	 */

	public static int simpleFunc(int a, int b) {
		int sum = a + b;
		return sum;
	}
	
	/*
	 메소드 정의2 : 반환타입X, 매개변수 X, 형태로 정의
	 		-> 전달되는 값 없이 이름을 받은 후 namePrint()함수를
	 		호출한다. 반환값이 없는 경우에는 반드시 void라고 명시해야 한다.
	 */
	
	public static void menuPrint() {
		System.out.println("당신의 이름은 무엇인가요?");
		Scanner scanner = new Scanner(System.in);
		String name = scanner.nextLine();
		
		namePrint(name);
	}
	
	/*
	메소드 정의3 : 반환차입 X, 매개변수 O 형태로 정의
	-> 반환값이 없는 경우 실행이 종료되면 호출했던 지점으로 다시 돌아간다.
	 */
	
	public static void namePrint(String n) {
		System.out.println("제 이름은" + n + "입니다.");
	}
	
	/*
	 메소드를 호출할 때는 함수의 원형을 그대로 기술하면 된다.
	 매개변수가 있다면 갯수만큼 포함시켜주면 된다. 메개변수의 
	 갯수가 다르면 호출되지 않고 에러가 발생한다.
	 */
	public static void main(String[] args) {
		int result = simpleFunc(1,2);
		System.out.println("1과 2를 전달한 결과 : " + result);
		System.out.println("10과 20를 전달한 결과 : " + simpleFunc(10, 20));
		
		menuPrint();
	}
}

드디어 함수까지 왔습니다. 아직 class, 배열, 패키지, 접근지정자, static 등등 갈길이 멀지만 그래도 많이 왔으니 힘을 내봅시다. 함수의 기본적인 형태와 호출 방법입니다. 주석에 설명을 달아놓았습니다. 중요한 것이 있다면 static으로 선언한 함수는 static으로 선언한 함수만 호출 할 수 있다는 것입니다. 그러므로 main에서 호출할 함수는 모두 static으로 선언해야만 합니다.

 

 

결과 값

앞으로는 메소드의 형태에 대해 공부하도록 하겠습니다.