TIL | Java - method : 메서드

2022. 10. 6. 00:44·Java

method : 메서드 (=함수)

  • 반복되는 코드 블록에 이름을 붙여 놓은 것 (코드 재사용)
  • 객체가 가져가야 할 기능을 구현하기 위해 만듦
  • 가독성 좋음

 

메서드 선언 방법

Type Name(매개변수) {
}

*type

: 돌려주는 값에 대한 타입 = return type

돌려줄 값이 없다면 void 적기

있다면 돌려주는 값의 타입 적기

 

*parameter, 매개변수 (입력변수)

: 전달받는 값에 대한 타입 

없다면 () 괄호 안에 아무것도 안 적고 두기

 

*return (돌려줄 리터럴)

리턴이 없으면 void로 하기

반환 값(type)과 리턴  데이터 타입을 맞춰주기

 

예제)

1

public class MethodEx01 {
	
	public static void main(String[] args) {	
		//main은 실행시키는 method
		//메서드 안에 메서드 생성 불가!
		//main 밖에, 클래스 안에 어디서든 선언 가능!
		
		//calSum(); //메서드의 호출 - 이름()
		//System.out.println(calSum()); //55
		int result = calSum();
		System.out.println(result);
		
		int result2 = calSum();
		System.out.println(result2); //재활용 가능
		
		String result3 = ranStr();
		System.out.println(result3);
		
		String result4 = ranStr2();
		System.out.println(result4);
		
	}//메인 끝
	
	//반환 O 매개 값 X 모형
	static int calSum() { //왼쪽에 - 눌러서 메서드 접기 가능
		
		//1~10까지의 합을 누적
		int sum = 0;
		
		for(int i = 1; i <= 10; i++) {
			sum+=i;
		}
		
		return sum;
	}
	
	//반환 O 매개 값 X 모형 - 문자열의 결과 반환
	static String ranStr() {
		
		String str = ""; // A + B + C ... + Z
		
		for(char c = 'A'; c<= 'Z'; c++) {
			str += c; 
		}
		
		return str; // String의 기본값 null
	}
	
	//반환 O 매개 값 X 모형 - return키워드의 활용
	static String ranStr2() {
		double d = Math.random(); //Math.random(); 얘도 함수임
		
		if(d > 0.66) {
			return "가위";
		} else if (d > 0.33) {
			return "바위";
		} else {
			return "보";
		}
		
		/*
		String str;
		
		if (d > 0.66) {
			str = "가위";
		} else if (d > 0.33){
			str = "바위";
		} else {
			str = "보"; 
		}
		
		return str;
		*/
	}
}

2

public class MethodEx02 {
	public static void main(String[] args) {
		/*
		 * 매개변수 (parameter)
		 * 1.매개변수는 메서드를 호출할때 필요한 값을 전달하는 매개체
		 * 2.매개변수는 몇개 받을지 메서드를 선언할 때 결정 해줍니다.
		 */	
		
		int result = calSum(10);
		System.out.println("1~10까지의 합 : " + result);
		
		int result2 = calSum(100);
		System.out.println("1~100까지 합 : " + result2);
		
		int result3 = calSum2(10,20);
		System.out.println("10~20까지 합 : " + result3);
	}
	
	//반환 O, 매개변수 O
	static int calSum(int end) {
		
		int sum = 0;
		
		for(int i = 1; i <= end; i++) {
			sum += i;
		}
		
		return sum;
		
	}
	
	//반환 O, 매개변수 O - 매개변수가 여러개
	static int calSum2(int start, int end) {
		
		int sum = 0;
		for (int i = start; i <= end; i++) {
			sum+=i;
		}
		return sum;
		
	}
	
	
}

3

public class MethodEx03 {
	public static void main(String[] args) {
		
		/*
		 * 반환유형(return type)
		 * 1.반환유형은 메서드가 돌려주는 값에 대한 타입.
		 * 2.반환유형이 있는 메서드는호춯 구문이값이 되기 때문에 메서드의 매개값으로 사용될 수 있다.
		 * ex)printLn(메서드 호출)
		 * 3.모든 메서드는 return을 만나면 강제종료됩니다. 
		 * 4.리턴문 아래에는 코드를 작성할 수 없다.
		 */
		
		int result = add(3, 5);
		System.out.println("결과 : " + result);
		
		System.out.println( add(3,5) );
		
		//소괄호가 붙어있으면 다 메서드다
		
		int result2 = add(add(1,2), add(2,3));
		System.out.println(result);
		
//		int r = sub(1,2);
//		System.out.println(sub(1,2));
		sub(1,2);
		
		noReturn("hello");
		noReturn("bye");
	}
	//반환 O, 매개변수 O
	static int add(int a, int b) {
		
//		int result = a + b;
//		return result; //매개변수의 합

		return a + b;
		
		
	}
	//반환X, 매개변수O - 리턴이 없음(단순 실행)
	static void sub(int a, int b) {
		System.out.println("a-b="+(a-b));
		
	}
	
	//void형에서 return- 종료
	static void noReturn(String s) {
		if(s.equals("hello")) {
			System.out.println("실행종료");
			return; //종료
		}
		System.out.println(s);
	}
}

4

import java.util.Arrays;

public class MethodEx04 {
	
	public static void main(String[] args) {
		
		int [] arr = {1,2,3,4,5};
		
		String [] arr2 = {"월", "화", "수"};
		
		method01(arr); //변수명 or 생성구문
		method02(arr, arr2);
		int [] arr3 = method03();
		String [] arr4 = "str".split("");
//		System.out.println(Arrays.toString(method03()));
	}
	
	//배열도 매개변수로 받을 수 ㅇㅇ
	//정수배열을 매개변수로 받는 메서드
	
	static void method01(int [] a) {
				 //배열 받을거면 타입 뒤에 대괄호
		//a를 이용해서 배열값의 사용 가능
		System.out.println(Arrays.toString(a));
		
	}
	
	//정수배열과, 문자열 배열을 매개변수로 받는 메서드
	static int method02(int[] arr, String [] arr2) {
		//향상된 포문
		for(int a : arr) {
			System.out.println(a);
		}
		
		return 0;
	}
	
	//배열을 반환하는 메서드
	static int[] method03() {
		
		int [] arr = new int[5];
		arr[0] = 0;
		arr[1] = 1;
		arr[2] = 2;
		arr[3] = 3;
		arr[4] = 4;
		
		return arr;
		//		return null;
	}
}

5

public class MethodEx05 {
	
	public static void main(String[] args) {
		
		//메서드의 (동기적) 실행 - 순서대로 실행
		test01();
		
		//메서드의 재귀적 실행 - 나 자신을 다시 재귀하는 실행
		//메서드를 계속 실행시켜야 할 때!!!!!
		//복잡한 규칙성을 만드는데좋ㅇㅁ
		
		recursive(0);
		
		int sum = 1;
		for(int i = 1; i <= 5; i++) {
			sum *= i;
		}
		System.out.println(sum);
		
		int result = fac(5);
		System.out.println(result);
		
	}
	
	static void test01() {
		
		System.out.println("1번 메서드 실행");
		test02();
		System.out.println("1번 메서드 종료");
		
	}
	
	static void test02() {
		
		System.out.println("2번 메서드 실행");
		System.out.println("2번 메서드 종료");
		
	}
	
	static void recursive(int a) {
		
		//재귀적 함수는 탈출의 구문을 반드시 명시한다.
		if(a == 10) return;
		
		System.out.println(a);
		
		a++;//1증가
		recursive(a);
		
	}
	
	static int fac(int a) {
		
		
			if(a == 1) return 1; //f(1) = 1
			return a * fac(a-1);
			
	}
	
}

 

 

2022.10.05.wed / course11

'Java' 카테고리의 다른 글

TIL | Java - Garbage Collecter : 가비지 컬렉터  (0) 2022.10.06
TIL | Java - Pakage : 패키지  (0) 2022.10.06
TIL | Java - Class : 클래스 & Object : 객체 생성  (0) 2022.10.05
TIL | Java - OOP : 객체지향 언어, Class : 클래스 & Object : 객체  (0) 2022.10.05
TIL 12 | Java - 반복문 (중첩 For문, 향상된 For문)  (0) 2022.09.28
'Java' 카테고리의 다른 글
  • TIL | Java - Garbage Collecter : 가비지 컬렉터
  • TIL | Java - Pakage : 패키지
  • TIL | Java - Class : 클래스 & Object : 객체 생성
  • TIL | Java - OOP : 객체지향 언어, Class : 클래스 & Object : 객체
개발 공부
개발 공부
  • 개발 공부
    개발 공부
    개발 공부
  • 전체
    오늘
    어제
    • 전체보기 (163)
      • 프로젝트 (1)
      • JavaScript (46)
      • Node.js (3)
      • Next.js (5)
      • React (17)
      • NoSQL (0)
      • HTML,CSS (3)
      • CS (6)
      • Java (35)
      • Spring (6)
        • Spring의 정석 (1)
      • Spring boot (1)
      • MySQL (1)
      • 리눅스 (16)
      • JSP (9)
      • AWS (0)
      • git (2)
      • 알고리즘 (1)
      • ect (7)
      • Project (2)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    Java의 정석
    Java
    티스토리챌린지
    자바
    자바의 정석
    오블완
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
개발 공부
TIL | Java - method : 메서드
상단으로

티스토리툴바