기록장

메소드를 말해줄게 본문

개발/JAVA

메소드를 말해줄게

HJJJJJ 2022. 5. 14. 11:00
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