코딩공부/Java

05. 변수와 메서드

잉옐잉 2021. 7. 29. 13:05

변수 (Variable)

데이터 하나만 저장이 가능하다.

Data Type

int a = 10;

 

메서드 (method)

주어진 조건을 동작한 다음 데이터를 하나만 리턴한다.

public int sum(int a, int b){

     return a+b;

}

리턴 된 Data Type

int sum = a+b;

public class TPC06 {

	public static void main(String[] args) {
		// 메서드->동작(method), 기능(function)
		int a = 67;
		int b = 98;
		
		int result = sum(a,b);
		System.out.println(result);
		int[] arr = makeArr();
		int hap=0;
		for(int i=0;i<arr.length;i++) {
			hap+=arr[i];
		}
		System.out.println(hap);
	}
	//정수 2개를 매개변수로 받아 더하여 총합을 리턴하는 메서드를 정의하시오.
	//메서드는 독립적으로 만들어야하기에 여기 써야한다.
    //결과의 값을 메서드 이름(변수)에 담아서 리턴한다.
	public static int sum(int a, int b) {
		int v = a+b;
		return v;
	}
	
    //배열도 가능하다
	public static int[] makeArr() {
		int x = 10;
		int y = 20;
		int z = 33;
		int[] arr = new int[3];
		arr[0]=x;
		arr[1]=y;
		arr[2]=z;
		return arr;
	}
}

메서드의 매개변수 전달 기법

method가 호출되기위한 조건이 있다.

 

1. method호출부에 있는 실인수와 method정의부에 있는 가인수(매개변수)의 갯수가 같아야한다.

2. 실인수와 가인수의 DataType(자료형)이 같아야한다.

 

두 조건을 모두 충족하여 호출이 된 후 매개변수를 어떻게 전달하느냐에 따라 Call by Value와 Call by Reference 로 나뉜다.

 

 

값 전달 기법 (Call by Value)

호출 시에 기억공간에 저장되어 있는 값을 복사하여 전달한다.

method호출부와 method정의부의 기억공간이 개별로 마련된다.

 

번지 전달 기법 (Call by Reference)

호출 시에 값이 아닌 번지(주소)를 전달한다.

method호출부와 method정의부가 서로 기억공간을 공유한다.


public class TPC07 {

	public static void main(String[] args) {
		int a = 20;
		float b = 23.42f;
		float v = sum(a,b); // Call by Value
		System.out.println(v); // 43.42
		
		int[] arr = {1,2,3,4,5};
		int vv = arrSum(arr); // Call by Reference
		System.out.println(vv); // 15
	}
	private static int arrSum(int[] arr) {
		int hap = 0;
		for(int i=0; i<arr.length;i++) {
			hap+=arr[i];
		}
		return hap;
	}
	public static float sum(int a, float b) {
		float v = a+b;
		return v;
	}

}

 

'코딩공부 > Java' 카테고리의 다른 글

07. 객체 생성 과정  (0) 2021.09.17
06. 자바 가상머신 (Java virtual Machine)  (0) 2021.09.12
04. 배열(Array)  (0) 2021.07.21
03. PDT VS UDDT  (0) 2021.07.20
02. 변수, 자료형, 할당  (0) 2021.07.20