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

chapter07 : method

GAWON 2023. 5. 16. 18:29
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 예외 발생
 - 반드시 언제 호출이 끝날 것인지 명시해 줘야 함
Q1.
클래스 Car 를 정의하시오.
- 필드 : String model,String color, int year
- 메소드 : setFields(model, color) : 올해를 year로 처리,
		 setFields(model, color, year),
		 output()
클래스 CarMain을 정의 하시오.
★
Calendar calendar = Calendar.getInstance();
calendar.get(Calendar.YEAR);	 // 현재 년도

Q2.
클래스 Dog을 정의하시오.
- 필드 : String name, String breed, int age
- 메소드 : setDog(name, age) : 품종은 푸들
		setDog(name, age, breed)
		info() - name, age, breed 출력
클래스 DogMain을 정의하시오.

Q3.
클래스 RecursiveCall 을 정의하시오.
- 필드  : X
- 메소드 : recursive(n) -> n번 "Hello" 출력하기
		 main
★
if-else 사용 - else 일 때 재귀 호출
Q1. 특정 값(정수)을 입력 받아 입력 받은 값이 3의 배수인지 아닌지를 출력

Q2. 1부터 20까지의 정수 중에서 2 또는 3의 배수가 아닌 수의 총합을 구하시오

Q3. 정수 두개를 입력 받아 최소, 최대, 합계를 출력
	ex)최대:100	최소:10: 합계:110

Q4. 총 4개의 과목 성적을 입력하여 평균이 60점 이하면 과락, 60점 이상이면 합격을 출력
	* 배열을 이용

Q6. 두 개의 주사위를 던졌을 때, 눈의 합이 6이 되는 모든 경우의 수를 출력하는 프로그램을 작성하시오

Q7. 피보나치 수열은 앞의 두 수를 더해서 다음 수를 만들어나가는 수열이다.
	예를 들어 앞의 두 수가 1과 1이라면 그 다음 수는 2가 되고
	그 다음 수는 1과 2를 더해서 3이 되어서 1,1,2,3,5,8,13,21...과 같은 식으로 진행된다.
	1과 1부터 시작하는 피보나치수열의 10번째 수는 무엇인지 계산하시오.

Q8. 배열 arr에 담긴 모든 값을 더하는 프로그램을 완성하시오
	int[][] arr = {
			{5, 5, 5, 5, 5},
			{10, 10, 10, 10, 10},
			{20, 20, 20, 20, 20},
			{30, 30, 30, 30, 30}
			};

Q9. 배열 int[] arr = {1,2,3,5,6} 의 값 중에 최대 값, 전체 합, 평균 값 출력하기

Q10. 피보나치 수열 20개를 출력(배열 이용)
	ex) 1, 1, 2, 3, 5, 8, 13, 21, ...

'JAVA' 카테고리의 다른 글

chapter09 : this  (0) 2023.05.16
chapter08 : constructor  (0) 2023.05.16
chapter06 : OOP  (0) 2023.05.16
chapter05 : memory  (0) 2023.05.16
chapter05 : array  (1) 2023.05.16