안녕하세요 코이킹입니다.
이번 포스트에서는 메서드에 대해서 설명해보겠습니다.
1. 메서드란?
메서드는 호출하면 특정한 기능을 수행하고 그 결과를 반환하는 코드의 집합으로 수학의 함수와 같은 역할을 합니다.
2. 메서드 선언
메서드는 '[접근지시자] [리턴할 데이터 타입] 메서드명 (매개변수1, 매개변수2...) { 메서드의 코드...}'와 같이 선언합니다.
1) 매개변수 X, 결과 값 반환 X
public void printHello() {
System.out.println("Hello!!!");
}
괄호() 안에 매개변수를 선언하지 않고, 리턴 값이 없으므로 '[리턴할 데이터 타입]'에는 void를 사용합니다.
2) 매개변수 O, 결과 값 반환 X
public void printString(String str) {
if (str == null || str.equals("")) {
/*
* 여기에서는 쓰이는 return은 값을 반환한다는 의미가 아니라,
* return이후의 메서드내부의 코드가 실행되지 않고,
* 메서드를 호출한곳으로 코드실행의 흐름을 돌린다로 해석.
* */
return;
}
System.out.println(str);
}
괄호() 안에 매개변수를 선언 하고([데이터 타입] [매개변수명]), '[리턴할 데이터 타입]'에는 void를 사용합니다.
3) 매개변수 X, 결과 값 반환 O
public int getRandomNumber() {
return new Random().nextInt(100)+1;
}
괄호()안에 매개변수를 선언하지 않고, '[리턴할 데이터 타입]'으로 선언한 데이터 타입의 값을 return키워드를 사용하여, 메서드의 결과 값을 반환합니다.
4) 매개변수 O, 결과 값 반환 O
public int getRandomNumberFromTo(int from, int to) {
if (from <= 0 || to <= 0 ) {
return 0;
}
return new Random().nextInt(to)+from;
}
괄호() 안에 매개변수를 선언 하고([데이터 타입] [매개변수명]),'[리턴할 데이터 타입]'으로 선언한 데이터 타입의 값을 return키워드를 사용하여, 메서드의 결과 값을 반환합니다.
3. 메서드 호출
1) 멤버 메서드
'인스턴스명.메서드명()' 으로 메서드를 호출할 수 있습니다.
※ static으로 선언하지 않은 메서드는 클래스의 인스턴스를 생성해야만 호출이 가능합니다.
// 1) 매개변수 X, 결과 값 반환 X
method.printHello();
// 2) 매개변수 O, 결과 값 반환 X
method.printString("Bye Bye");
// 3) 매개변수 X, 결과 값 반환 O
System.out.println(method.getRandomNumber()); // 그대로 출력
int randomNum = method.getRandomNumber();
System.out.println(randomNum);
// 4) 매개변수 O, 결과 값 반환 O
System.out.println(method.getRandomNumberFromTo(5,10)); // 그대로 출력
int randomNum2 = method.getRandomNumberFromTo(11,30);
System.out.println(randomNum2);
2) 정적(static) 메서드
정적 메서드는 인스턴스를 생성하지 않아도 호출이 가능한 메서드 입니다.
'클래스명. 메서드명()' 또는 '인스턴스명. 메서드명()'으로 호출할 수 있습니다.
// 인스턴스 없이도 사용가능
System.out.println(B_08_Method.getHelloWorld());
// 정적 메서드
public static String getHelloWorld() {
return "Hello World!!";
}
※ 예제코드
https://github.com/leeyoungseung/algorithmBasic/blob/master/algorithm/src/basic/B_08_Method.java
※ qiita에 투고한 URL
'프로그래밍 > Java-문법정리' 카테고리의 다른 글
【Java문법】래퍼클래스 (0) | 2022.01.10 |
---|---|
【Java문법】표준입출력 (0) | 2022.01.09 |
【Java문법】배열 (0) | 2022.01.09 |
【Java문법】반복문 (0) | 2022.01.09 |
【Java문법】조건문 (0) | 2022.01.09 |
댓글