기록장
메소드를 말해줄게 본문
728x90
메소드는 걍 간단해
작업단위를 중괄호 { }로 묶어 놓고 이름을 붙인거야
메소드=선언부+구현부(실행블록)이야
메소드는 선언+실행부라고 말했지?
선언부에는 (리턴타입, 메소드 이름, 매개 변수 선언)이렇게 있거든
일단
리턴타입
결과 값의 타입을 쓰면 돼
결과 값이 없으면 void로 쓰면 돼
매개 변수를 모를 경우가 있을거야
여러개의 수를 모두 합산하는 메소드를
선언해야한다면 몇 개의 매개 변수가 입력될지 알 수 없잖아?
이럴때는
변수를 배열타입으로 선언하면 돼~
int sum1(int[] values) { }
이렇게 말야
sum()메소드를 호출할 때 배열을 넘겨주면서
배열의 항목값을 전달 할 수 있는거지
즉 호출 할 떄 항목 수가 결정되는거야
근데 이러면 호출 전에 배열 생성해야 불편하잖아?
이럴때는 목록만 넘겨 주면 돼
int sum2(int ... values) { } 이렇게
이러면 메소드의 매개 변수를 ...를 사용해서 호출 시 넘겨준 값의
수에 따라 자동으로 배열이 생성되고 매개값으로 사용돼
package sec02.exam01;
public class Computer {
int sum(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;
}
}
->이건 보면 sum1()랑 sum2()의 실행문이 일치하는게 보이지?
매개 변수의 선언 방법만 다를 뿐이지 매개 변수 타입이 배열이라 처리 내용이 같을 수 밖에 없어
package sec02.exam01;
public class ComputerExample {
public static void main(String[] args) {
Computer myCom = new Computer();
int[] values1 = {1,2,3};
int result1 = myCom.sum2(values1);
System.out.println("result1:" + result1);
int result2 = myCom.sum(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);
}
}
728x90
'개발 > JAVA' 카테고리의 다른 글
정적 변수 코드 짜봤어~ 주의할 점도 알려 줄게 (0) | 2022.05.15 |
---|---|
메소드를 알려줄게 2 (0) | 2022.05.14 |
생성자에 대해서 알려줄게2 (0) | 2022.05.12 |
생성자에 대해서 알려줄게 (0) | 2022.05.12 |
필드 (0) | 2022.05.12 |
Comments