drexqq

[Java, 자바] 함수(function, method), 가변인수 본문

Back-End/Java

[Java, 자바] 함수(function, method), 가변인수

drexqq 2020. 5. 27. 20:51
728x90
반응형

Java의 함수에 대해서 알아보자.

 

function : 함수, 독립적인 프로세스
method : 함수, class에 포함되어 있는 함수

 

C언어 - function으로 이루어짐
Java - class로 이루어짐 

 

목적 : 코드의 간락화, 같은 처리를 하는 코드의 집약화

 

함수는 간략히 5가지로 보자면

input (x) return(x)

input (o) return(x)

input input return

input (o) return (o)

input (x) return (o)

이 정도가 있다

input은 받는값 즉 파라미터, return은 말그대로 return이다.

 

package main;

public class mainClass {

	public static void main(String[] args) {
		/*
		 	function : 함수, 독립적인 프로세스
		 	method : 함수, class에 포함되어 있는 함수
		 	
		 		C언어 - function으로 이루어짐
		 		Java - class
		 		
		 	목적 : 코드의 간락화, 같은 처리를 하는 코드의 집약화
		 	
		 	가독성 : 이해하기 쉽게 작성하는
		 	
		 	형식					인수, 인자, 매개변수, parameter
		 	return 값(자료형), 함수명(자료형 가상연수, ...) {
		 	
		 		처리
		 		
		 		return 값; <- 없을 수도 있음
		 	}
		 	
		 	return 값(자료형) : char int doulbe init[] String void(return값이 없을때)
		 	
		 	int funcName(char c, double d){
		 	
		 		처리
		 		
		 		return 값; <- 정수(int)
		 	}
		 */
		
		function();
		function1(12);
		function2("My World", 123.123);
		function2("You World", 456);
		
		int returnValue = function3(4512.124);
		System.out.println("main() returnValue = " + returnValue);
		
		int asc = getASCIIcode('A');
		System.out.println("asc = " + asc);
		System.out.println(getASCIIcode('a'));
		
		int num = function4();
		System.out.println("num = " + num);
		
		// random함수
		int r = (int) (Math.random() * 10);
		
		String str = "hello";
		int len = str.length();
		
		String aaa = "ABCdef";
		String result = aaa.toUpperCase();
		
		int arrNum[] = {1, 2, 3, 4, 5};
		arrProcess(arrNum);
	}
	
	//	   void <- return값이 없다
	static void function() {
		System.out.println("function() 호출");
	}
	
	static void function1(int n) {
		System.out.println("function1(int n) 호출");
		System.out.println("파라미터 n의 값 = " + n);
	}
	
	static void function2(String str, double d) {
		System.out.println("function2(String str, doubled) 호출");
		System.out.println("str = " + str + ", d = " + d);
	}
	
	static int function3(double d) {
		System.out.println("function3(double d) 호출");
		System.out.println("d = " + d);
	//			double형이 더 크기 때문에 강제 형변환 해줘야함
		return (int) d;
	}
	
	static int function4() {
		System.out.println("function4() 호출");
		return 12;
	}
	
	static int getASCIIcode(char c) {
		return (int) c;
	}
	
	static void arrProcess(int[] arr) {
		for (int i = 0; i < arr.length; i++) {
			System.out.println("arr["+i+"] = "+arr[i]);
		}
	}
	
	

}

 

또한 함수에는 가변인수를 사용할 수 있다.

 

가변인수란 필요에 따라 파라미터(인수)값을 유동적으로 설정할 수 있는 인수이다.

 

// 점 반드시 세개
	static void allocParam(int...num) {
		int sum = 0;
		for (int i = 0; i < num.length; i++) {
			sum = sum + num[i];
		}
		// 배열과 비슷함, 근데 배열을 더 많이 사용함
		System.out.println("합계 : "+sum);
	}
	// 일반 파라미터와 섞어서 사용 가능함
	// 가변인수의 위치는 파라미터의 제일 뒷 부분에 위치해야함
	// 개수가 정해져있지 않기때문에 뒤로 가야함
	static void func(String str, int...num) {
		System.out.println("str = " + str);
		for (int i = 0; i < num.length; i++) {
			System.out.print(num[i] + " ");
		}
		System.out.println();
	}

 

 

 

728x90
반응형

'Back-End > Java' 카테고리의 다른 글

[Java, 자바] Overloading(오버로딩)  (0) 2020.06.01
[Java, 자바] BufferedReader, BufferedWriter  (0) 2020.05.29
[Java, 자바] Sorting(정렬) - 선택  (0) 2020.05.26
[Java, 자바] String클래스  (0) 2020.05.26
[Java, 자바] wrapperClass  (0) 2020.05.26
Comments