JAVA/자바[4일차](1)-메소드란?, 메소드 구조, 메소드 사용법
안녕하세요 오늘은 수업에서 배운 내용인 자바에서의 메서드에 대해 정리해봤습니다.!!

메서드란?
메서드란 어떠한 문제를 처리하기 위한 방법을 소스 코드로 묶어 놓고 필요할 때 호출하는 기능.
메서드의 구조
public static void methodName(int a, double b){
//실행할 내용
return 값;
}
메서드는 크게 접근제어자, 반환 타입, 메서드 이름, 매개변수, return으로 이루어져 있습니다.
접근 제어자
⇒ 해당 메서드에 접근할 수 있는 범위를 명시해 놓은 것입니다.
반환 타입(return type)
⇒ 메서드가 모든 작업을 마치고 반환하는 데이터의 타입을 명시
예를 들어 void는 데이터 반환 값이 없다는 것이고 int가 온다면 정수형 데이터 타입을 반환하겠다는 뜻
메서드 이름
⇒ 메서드 이름은 사용자가 정의할 수 있습니다.
매개변수 목록(parameters)
⇒메서드 호출 시에 전달되는 인수의 값을 저장할 변수들을 명시해놨습니다.
메서드의 사용 이유
메서드는 왜 사용될까요?
밑에 예시 코드를 하나 보면 1~10까지 출력을 하는 코드를 작성했습니다.
1~10까지 출력하는 코드를 계속해서 출력을 하고 싶습니다.
그런데 어차피 1~10까지 출력하는 내용은 똑같은 건데 저 내용을 모아두어서 조금 더 짧게 바꿀 수 있지 않을까요?
메서드를 사용하지 않고 1~10까지 출력
public static void main(String[] args) {
System.out.println("1");
System.out.println("2");
System.out.println("3");
System.out.println("4");
System.out.println("5");
System.out.println("6");
System.out.println("7");
System.out.println("8");
System.out.println("9");
System.out.println("10");
}
따라서 메서드의 사용 이유 중 핵심은 중복되는 코드의 반복적인 프로그래밍을 피할 수 있죠!
그리고 모듈화로 인해 가독성은 훨씬 좋아집니다.
추가적으로 프로그램에 문제가 발생하거나 기능의 변경이 필요할 때도 굳이 해당 코드로 가지 않고도 메서드의 내부를 수정하면 되는 유지보수도 용이하게 되는 것이지요!
메서드를 사용하여 1~10 5번 출력
메서드를 사용하지 않고 1~10을 출력하는 문장을 출력하려면 총 50줄을 작성해야 합니다.
하지만 위의 기능을 메서드를 만들어 정의해 두었다면? 아래와 같은 5줄의 코드로 줄어듭니다.
public static void main(String[] args) {
print();
print();
print();
print();
print();
}
public static void print() {
System.out.print("1");
System.out.print("2");
System.out.print("3");
System.out.print("4");
System.out.print("5");
System.out.print("6");
System.out.print("7");
System.out.print("8");
System.out.print("9");
System.out.print("10");
System.out.println();
}
}
메서드의 호출
메서드의 호출은 반드시 main메서드 안에 호출해야 합니다.
public static void main(String[] args) {
method();
}
위의 형태처럼 메서드의 이름과 소괄호를 작성해주어야지 메서드가 호출(실행)됩니다.
반환 타입과 매개변수가 없는 메서드 예시 코드
public static void methodA() { //1)메소드 이름 정하기=> methodA
//2)실행할 내용 작성
System.out.println("methodA( )실행결과.");
}
void는 리턴 값이 없다는 것입니다.
매개변수를 사용한 메서드 예시 코드
메서드 정의
public static void methodB(int n1,int n2) {
//데이터를 전달해서 메소드 실행 내용을 다르게 할수 있습니다.
//int n1과 int n2와 같은 값을 형식매개변수라고 부릅니다.(값이 아직은 없는 상태입니다.)
System.out.println("methodB( )실행결과.");
System.out.println("n1 ="+n1+",n2="+n2);
System.out.println("n1+n2="+(n1+n2));
}
이번에는 위의 매개변수가 없는 메서드와는 다르게 int n1, n2라는 정수형 매개변수를 넣어보았습니다.
이렇게 매개변수를 선언하였다면 메인 함수의 호출부에서 값을 받아와 메서드 내에 있는 n1, n2변수에 대입하여 값을 사용할 수 있습니다.
public static void main(String[] args){
methodB(13,45); //13과 45를 인자값으로 받아와 methodB의 형식 매개변수 즉, n1,n2로 전달됨
}
출력 결과
methodB 정의되어있는 출력문과 n1, n2에 각각 13과 45가 전달되어 계산식이 출력된 것을 확인할 수 있습니다.
메서드 안에 return을 사용하여 데이터를 반환해보기
public static int methodC() { //리턴값의 형식은 methodC( )에서는 int
System.out.println("methodC( )실행결과.");
return 999;
}
이번에는 return을 한번 사용해 보겠습니다.
return값을 사용하려면 데이터 반환 타입 자리에 return값의 데이터 타입과 일치해야 합니다.
따라서 저희는 999라는 정수 값을 반환할 것이기 때문에 데이터 반환 타입에 int를 작성해 준 것입니다.
여기서 return값을 반환한다는 것은 메서드를 호출한 곳으로 반환을 하는 것입니다.
메서드 호출
public static void main(String[] args){
System.out.println("methodC메소드 리턴값"+methodC()); //methodC()호출 및 출력
int result=methodC(); //methodC( )리턴 값 resutl변수에 저장
System.out.println("methodC 메소드 리턴값:"+result); //resutl 값 출력
}
위의 코드에서 알 수 있듯이 메서드의 return값은 변수에도 담을 수 있습니다.
출력 결과
오늘은 이렇게 배운 내용 정리해 보겠습니다.
이상으로 글 읽어주셔서 감사합니다.!!