Notice
Recent Posts
Recent Comments
Link
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

WON.dev

chapter07_method 본문

JAVA/chapter01_JAVA_개념정리

chapter07_method

GAWON 2023. 5. 31. 18:10
1.1 메소드
 - 객체의 동작에 해당하는 중괄호 {} 블록을 말하며 해당 블록의 이름이 메소드 이다.
 - 메소드는 기본적으로 '메소드이름()'의 형태(괄호를 붙인 형태)를 갖추기에
      괄호가 붙는 것들은 전부 메소드라고 생각하면 된다.

1.2 메소드 작성 규칙
	1) 메소드 정의 (메소드 만들기)
	2) 메소드 호출 (메소드 사용하기)
	3) 메소드 정의 방법
		형식
		①리턴타입 ②메소드이름 (③매개변수선언, ...) {
			메소드본문;
			④return 리턴값;
		}
		① 리턴타입
			- 메소드의 결과가 가지는 자료형
			- 메소드의 결과가 없다면 void 를 명시함(④이 없어야 함)
		② 메소드이름
			- 변수이름처럼 개발자가 직접 생성
			- 숫자로 시작하면 안되고 '$', '_'를 제외한 특수문자를 사용할 수 없다.
			- camel case 를 따름(첫 글자는 소문자로 한다. 이후에 나타나는 새 단어는
			 첫 글자를 대문자로 한다.)
		③ 매개변수선언
			- 메소드 호출 시 전달되는 값(인수)을 저장하는 변수
			- 인수가 여러 개면 매개변수선언도 여러 번 해야함
			- 인수가 없으면 ()안을 비워 두면 됨
		④ return 리턴값
			- 메소드의 결과 값을 메소드 호출부로 반환
			★- 특정 값 1개만 return 가능  (return a, b; 와 같이 a와 b를 동시에 리턴하는 것은 불                    가능)
			- 예) 원의 크기를 구하는 메소드가 있다면 '원의 크기'가 리턴값이 될 수 있음
	4) 메소드 호출 방법
		1) 인스턴스가 있는 경우(객체화 된 경우)
			인스턴스이름.메소드이름(인수)
			Scanner scanner = new Scanner(System.in);		// scanner 인스턴스
			scanner.next();									// 인스턴스를 통한 호출
		2) 인스턴스가 없는 경우 (나중에 배울텐데... 인스턴스가 필요 없는 경우)
			클래스이름.메소드이름(인수)
			Integer.parseInt("변환할문자열");


★1.3 메소드 오버로딩(method overloading)
 - 메소드 이름이 같고,
 - 매개변수선언이 다른 메소드가 여러 개 존재할 수 있다.
 - 리턴 타입은 상관 없다.
ex)
	 메소드 이름은 println 으로 같지만, 괄호 안에 전달하는 인수는 타입이 다르다!
	- System.out.println(정수)	: System.out.println(int)
	- System.out.println(실수)	: System.out.println(double)
	- System.out.println(문자)	: System.out.println(char)
	- System.out.println(문자열)	: System.out.println(String)


1.4 재귀 호출 (Recursive call)
 - 메소드를 정의할 때 자신의 메소드를 자신이 호출하는 방식
 - 반복문의 처리, 복잡한 알고리즘 처리
 - 재귀 호출을 잘못 구현하면 무한 루프에 빠질 수 있음
	StackOverflowError 예외 발생
 - 반드시 언제 호출이 끝날 것인지 명시해 줘야 함

'JAVA > chapter01_JAVA_개념정리' 카테고리의 다른 글

chapter09_this  (0) 2023.05.31
chapter08_constructor  (0) 2023.05.31
chapter06_OOP  (0) 2023.05.31
chapter05_memory  (0) 2023.05.31
chapter05_array  (0) 2023.05.31