메소드(함수)란
작업을 수행하기 위해 일련의 작업들을 한데 묶어 실행하는 것이다.
(파이썬과 같은 언어에서는 함수와 메소드가 별도로 존재하기 때문에 두개를 구분하여 말한다.
하지만 자바에서 메소드는 함수와 같은 개념이라고 보면 된다.)
메소드를 사용하는 이유
예를들어 system.out.println("안녕하세요");을 통해 10번의 '안녕하세요'를 출력하고자 하면 println구문을 열번 반복해서 출력해야 한다. 그리고 이 행동을 여러번 반복해야한다면 여간 귀찮은 일이 아닐것이다.
이때, 우리는 메소드라는 주머니에 system.out.println("안녕하세요"); 열개를 넣어넣고 메소드만 한번 실행함으로서 '안녕하세요'를 열번 출력할 수 있게 된다.
우리가 메소드를 사용하는 이유는 반복되는 작업을 피할 수 있게 되고, 코드의 가독성 또한 높일 수 있게 되기 때문이다.
public class Main {
public static void main(String[] args) {
a(); // 메소드 호출, 10개의 안녕하세요를 한번에 실행 !
}
public static void a(){ //메소드 선언부, 주머니라 보면 된다.
//주머니에 10개의 안녕하세요가 담겨있다.
System.out.println("안녕하세요");
System.out.println("안녕하세요");
System.out.println("안녕하세요");
System.out.println("안녕하세요");
System.out.println("안녕하세요");
System.out.println("안녕하세요");
System.out.println("안녕하세요");
System.out.println("안녕하세요");
System.out.println("안녕하세요");
System.out.println("안녕하세요");
//출력결과 '안녕하세요' 가 열번 출력 된다.
}
}
매개변수
매개변수란 메소드를 사용할 때 필요한 입력값이다. 메소드를 사용할 때 입력값이 필요하다면 사용하여 넣고, 필요없다면 매개변수를 사용하지 않아도 된다.
void와 return
메소드를 사용하게 되면 단순히 값을 출력해줄 뿐만 아니라 return을 통해 값을 반환해 줄 수도 있다. void대신 반환값의 자료형을 사용하고, 반환할 값을 returtn 뒤에 사용하면 된다.
메소드가 return을 만나게되면 메소드를 종료한다.
public class Main {
//1. 먼저 메인함수가 실행된다.
public static void main(String[] args) {
//2. 매개변수 10과 20을 가지고 sum 함수로 간다.
System.out.println(sum(10, 20));
}
//여기서 int 는 반환값의 자료형이다. 매개변수로 int형 a와 b를 받는다.
public static int sum(int a, int b){
return a+b; //3. a+b를 반환하고 메소드를 빠져나온다.
}
}
자바의 메소드 종류 2가지
자바에는 자주 사용하는 기능을 미리 만들어서 자바에서 제공하는 내장 메소드와 개발자가 필요할 때 마다 새로운 기능을 추가하여 사용하는 사용자 정의 메소드가 있다.
내장 메소드에는 다양한 종류가 있는데
String클래스 내부의 toString() 메소드 : 특정 데이터를 문자열로 변환해주는 메소드
Math클래스 내부의 random() 메소드 : 0.0 ~ 1.0 랜덤값을 제공해 주는 기능의 메소드
Date클래스 내부의 getDate() 메소드 : 현재 날짜와 시간 관련 데이터를 제공해주는 기능의 메소드 등이 있다.
사용자 정의 메소드는 말 그대로 사용자가 직접 정의하여 사용할 수 있는 메소드이다.
//사용자 정의 메소드 만들기 문법
접근지정자 반환할값타입 메소드명(타입 매개변수명){ //메소드의 선언부
메소드의 기능을 코드로 작성; //메소드의 구현부
return 반환할 값; //메소드를 호출 한 장소로 반환할 값 작성
};
'프로그래밍 > Java' 카테고리의 다른 글
[Java] 향상된 for문 (0) | 2021.03.12 |
---|---|
[Java]배열 (0) | 2021.03.11 |
[Java] print, println, printf (1) | 2021.03.09 |
[Java]Scanner vs BufferedReader (1) | 2021.03.08 |
[Java]제어문 (0) | 2021.03.03 |