안녕하세요 알통몬입니다. 공감 및 댓글은 포스팅 하는데 아주아주 큰 힘이 됩니다!! 포스팅 내용이 찾아주신 분들께 도움이 되길 바라며 더 깔끔하고 좋은 포스팅을 만들어 나가겠습니다^^
|
-중괄호 블록은 이름을 가지고 있는데 이것이 메소드 이름입니다.
-메소드를 호출하면 중괄호 블록에 있는 모든 코드들이 일괄적으로 실행.
-메소드는 필드를 읽고 수정하는 역할도 하지만, 다른 객체를 생성해서 다양한 기능을 수행하기도 합니다.
-메소드는 객체 간의 데이터 전달의 수단으로 사용됩니다.
-외부로부터 매개값을 받을 수도 있고 실행 후 어떤 값을 리턴할 수도 있습니다.
메소드 선언
선언부와(리턴타입, 메서드이름, 매개변수선언)와 실행 블록으로 구성.
메소드 선언부를 메서드 시그니처라고도 합니다.
리턴타입 메소드이름([매개변수선언,...]){
실행할 코드를 작성하는 곳
..................
}
리턴타입 : 메서드가 실행 후 리턴하는 값의 타입
메소드는 리턴값이 있을 수도 있고 없을 수도 있습니다.
메소드가 실행 후 결과를 호출한 곳에 넘겨줄 경우에는 리턴값이 있어야 합니다.
리턴값이 없는 메소드 : 리턴타입에 void가 와야하고
리턴값이 있는 메소드 : 리턴값의 타입이 와야합니다.
ex)
void powerOnOff() { ... }
double plus(int x , int y) { ... }
리턴값이 있느냐 없느냐에 따라 호출방법도 조금 다릅니다.
powerOnOff();
double result = plus(10,20);
메소드 이름
메소드 이름은 자바 식별자 규칙에 맞게 작성하면 됩니다.
-숫자로 시작하면 안되고 $ , _ 를 제외한 특수문자를 사용하면 안된다.
-관례적으로 메서드명은 소문자로 작성한다.
-서로 다른 단어가 혼합된 이름이라면 뒤이어 오는 단어의 첫머리 글자는 대문자로 작성한다.
ex)
void run() { ... }
void startPoint() { ... }
String getName() { ... }
int[] getScores() { ... }
메소드 이름은 어떤기능을 하지는 알기 쉽게 주는 것이 좋다.
매개 변수 선언
매개 변수는 메서드가 실행할 때 필요한 데이터를 외부로부터 받기 위해 사용합니다.
매개 변수도 필요한 경우가 있고 필요 없는 경우가 있습니다.
예를 들어 powerOnOff() 메소드는 그냥 전원만 켜고 끄면 그만이지만,
plus() 메소드는 더할 두 수가 필요합니다.
따라서 powerOnOff() 메소드는 매개 변수가 필요 없고, plus() 메소드는 매개 변수가 2개 필요합니다.
void powerOnOff() { ... }
double plus(int x , int y) { ... }
예제1) :메소드 선언
public class Calculator {
//메소드
void powerOn() {
System.out.println("전원을 켭니다.");
}
int plus(int x, int y) {
int result = x + y;
return result;
}
double divide(int x, int y) {
double result = (double)x / (double)y;
return result;
}
void powerOff() {
System.out.println("전원을 끕니다");
}
}
예제2) : 메소드 호출
매개 변수의 수를 모를 경우
예를 들어 여러 개의 수를 모두 합산하는 메소드를 선언해야 한다면,
몇 개의 매개 변수가 입력될지 알 수 없기 때문에 변수의 갯수를 결정할 수 없을 것입니다.
해결책은 매개 변수를 배열 타입으로 선언하는 것입니다.
int sum(int[] values) { }
sum() 메소드를 호출할 때 배열을 넘겨줌으로써 배열의 항목 값들을 모두 전달할 수 있습니다.
배열의 항목 수는 호출할 때 결정됩니다.
int[] values = {1,2,3};
int result = sum(values);
int result = sum(new int[] = {1,2,3,4,5};
배열을 생성하지 않고 값의 리스트만 넘겨주는 방법도 있습니다. 매개 변수를
"..." 을 사용해서 선언하게 되면 메소드 호출 시 넘겨준 값의 수에 따라
자동으로 배열이 생성되고 매개값으로 사용됩니다.
int sum2(int ... values) { }
...으로 선언된 매개 변수의 값은 아래와 같이 메소드 호출 시 리스트로 나열해주면 됩니다.
int result = sum2(1,2,3);
int result = sum2(1,2,3,4,5);
... 으로 선언된 매개 변수는배열 타입이므로 배열을 직접 매개값으로 사용해도 됩니다.
int[] values = {1,2,3};
int result = sum2(values);
int result = sum2(new int[] = {1,2,3,4,5};
매개 변수를 모를 경우 예제)
예제1)
public class Computer {
int sum1(int[] values) {
int sum = 0;
for(int i=0; i<values.length; i++) {
sum += values[i];
}
return sum;
}
int sum2(int ... values) {
int sum = 0;
for(int i=0; i<values.length; i++) {
sum += values[i];
}
return sum;
}
}
예제2)
public class ComputerExample {
public static void main(String[] args) {
Computer myCom = new Computer();
int[] values1 = {1, 2, 3};
int result1 = myCom.sum1(values1);
System.out.println("result1: " + result1);
int result2 = myCom.sum1(new int[] {1, 2, 3, 4, 5});
System.out.println("result2: " + result2);
int result3 = myCom.sum2(1, 2, 3);
System.out.println("result3: " + result3);
int result4 = myCom.sum2(1, 2, 3, 4, 5);
System.out.println("result4: " + result4);
}
}
'자바' 카테고리의 다른 글
JAVA 자바 메서드 - 메서드 호출,객체 내부에서 호출, 객체 외부에서 호출 (2) | 2017.03.12 |
---|---|
JAVA 자바 메서드 - 리턴문 , 리턴값이 있는 메서드, 리턴값이 없는 메서드 (0) | 2017.03.12 |
JAVA 자바 생성자 오버로딩과 다른 생성자 호출(this()) (0) | 2017.03.12 |
JAVA 자바 클래스 기본 생성자 , 생성자 선언, 필드 초기화 (0) | 2017.03.12 |
JAVA 자바 클래스의 필드 (0) | 2017.03.12 |