6일차 - 메소드 연습3

|

주요내용 : 메소드 오버로딩, 재귀호출

import java.util.Scanner;

/* 
 * Method OverLoading(메소드 오버로딩)
 * 의미 : 같은 이름의 메소드명으로 서로 다른 기능을 구현하고자 할 때 사용합니다.
 * 조건>
 * 1. 이름은 반드시 같아야 합니다.
 * 2. 자료형의 갯수가 서로 다르거나, 인자의 갯수가 서로 달라야 합니다.
 */


//문제2
class HelloClass{ 
	void Hello() { // 전달인자 값이 없습니다.
		System.out.println("first = Hello");
	}
	
	void Hello(float x) { // 전달인자가 1개
		for(float i=1.0f; i<=5.0; i++) {
			String str = "Hello";
			int xx = (int)x;
			System.out.println("second = " + xx + "=>" + str);
		}
	}
		
	void Hello(float x, float y) { // 전달인자가 2개
		float sum=0f;
		sum = x + y;
		System.out.println("합계는 = " + sum);
	}
//-------------end of 문제2---------------------
	// 문제3
	void Hello(int x){
		for(int i=3;i<=3;i++) {
			for(int j=1;j<=9;j++) {
				System.out.println(i + "*" + j + " = " + i*j);
				}
			}
		}
	
	// 문제4
	void Hello(int start, int end){ 
		for(int i=start;i<=end;i++) {
			for(int j=1;j<=9;j++) {
				System.out.println(i + "*" + j + " = " + i*j);
				}
			}
			System.out.println();
		}
	
	//문제5
	void HAP(int x) {
		int sum=0;
		for(int i = 1; i<=x ; i++) {
			sum+=i;
		}System.out.println(sum);
	}

	//문제6
	int SUM(int start, int end) {
		int sum=0;
		for(int i=start;i<=end;i++) {
			sum+=i;
		}
		return sum;
	}
	
}

	//재귀호출 hc2.ReHi2(n);
	static void ReHi2(int n) { // n=5, 4, 3, 2, 1, 0
		if(n == 0) { // n==5, n==4, n==3, n==2, n==1
			return;
		}
		System.out.println("HI"); // HI,HI,HI,HI,HI
		ReHi2(n-1); // 5-1, 4-1, 3-1, 2-1, 1-1
	}

}

public class MethodSample6 {

	//문제1
	private static void Hello() { 
		System.out.println("Hello");
	}
	
	//재귀호출 ReHi(n);
	private static void ReHi(int n) { // n=5, 4, 3, 2, 1, 0
		if(n == 0) { // n==5, n==4, n==3, n==2, n==1
			return;
		}
		System.out.println("HI"); // HI,HI,HI,HI,HI
		ReHi(n-1); // 5-1, 4-1, 3-1, 2-1, 1-1
	}
	
	public static void main(String[] args) {

		//문제1] "Hello"라는 문자열을 Hello()라는 메소드를 이용하여 출력해 보세요.
		Hello();
		
		//문제2] "Hello"라는 문자열을 HelloClass()라는 클래스를 이용하여 Hello()메소드를 구현하여 출력해 보세요.
		HelloClass hc = new HelloClass();
		hc.Hello(); //전달인자가 0개
		hc.Hello(5.0f); //전달인자가 1개
		hc.Hello(5.0f, 2.0f); //전달인자가 2개
		
		//문제3] 3단을 가인수(전달인자)로 넘겨서 Hello 메소드로 3단을 출력해 보세요.
		hc.Hello(3); //객체명.메소드명. 전달인자(arguments) : 가인수(보내는 쪽)
		
		//문제4] 시작단(2단)과 끝단(9단)을 가인수로 넘겨서 Hello 메소드로 구구단을 출력해보세요.
		hc.Hello(3,7);
		
		//문제5] HAP(x)이라는 메소드를 이용하여 1~100까지의 합계를 구하여 출력하세요.
		Scanner sc = new Scanner(System.in);
		System.out.println("덧셈할 숫자를 입력하세요.");
		int x = sc.nextInt();
		hc.HAP(x);
		
		//문제6] SUM()이라는 메소드를 이용하여 시작값(1)과 끝값(100)이 주어지면 합계를 구하여 출력하세요.
		System.out.println(hc.SUM(1, 100));
		
		//재귀호출(되부름)
		//재귀메소드 : 메소드가 자신을 다시 호출하여 작업을 반복 수행하는 방식을 말합니다.
		 System.out.println("숫자를 입력하세요.");
		 Scanner sc = new Scanner(System.in);
		 int n = sc.nextInt();
		 ReHi(n);
		 HelloClass hc2 = new HelloClass();
		 hc2.ReHi2(n);
		

		 
		 
		 
	}

}

'Bitcamp > BITCAMP - Java' 카테고리의 다른 글

6일차 - 메소드 연습5  (0) 2019.07.01
6일차 - 메소드 연습4  (0) 2019.07.01
5일차 - 메소드연습 2  (0) 2019.07.01
5일차 - 메소드 연습  (0) 2019.06.28
5일차 - 과제  (0) 2019.06.28
And