본문 바로가기
Study/Back

Aug.01.Tue.2023 나도코딩 Java 메소드 오버로딩 Method Overloading ~ 메인 메소드 Main Method

by Jobsoony 2023. 8. 1.
728x90
반응형

*메소드 오버로딩 Method Overloading

   > 메소드 오버로딩이란? 이름이 같더라도 전달하는 자료형이나 전달값의 개수가 다를 때 같은 이름의 메소드를 각각 호출하여 여러 번 선언하는 것. 𖤐반환형은 상관없음.


   (예시)

public static int getPower(int number) { 
	int result = number * number;
	return result;
}

public static int getPower(int number, int exponent) {
	int result = 1;
	for (i = 0; i < exponent; i++);
		result *= number;
	}
	return result;
}

public static void main(String[] args) {
   System.out.println(getPower(number: 3)); // 3 * 3 = 9
   System.out.println(getPower(number: 3, exponent: 3)); // 3 * 3 * 3 = 27
}


   👉🏻전달값의 개수가 달라서 같은 메소드의 이름을 사용했지만 전달값의 개수가 달라서 실행되는 코드가 다름.





*When To Use 언제 사용하는지?

   > 메소드가 필요한 이유는? 코드가 중복되었을 때 혹은 코드의 양이 많아졌을 때 메소드를 만들어서 코드를 간소화하면 코드 유지보수에 용이함.

        𖤐 메소드 내에서 또 다른 메소드 호출 가능





*변수의 범위 Variable Scope

   > 지역변수란? 변수가 선언된 영역 내에서만 사용할 수 있는 변수 👉🏻중괄호 내에서 선언된 변수는 그 중괄호 내에서만 사용 가능

     𖤐다른 영역에서 만든 변수를 다른 메소드에서 사용하고 싶다면 전달값을 이용해서 정의한 후 메소드를 호출할 때 전달값을 전달하는 식으로 사용 가능함!





*메인 메소드 Main Method

   > 메인 메소드도 하나의 메소드인데 변환형은 void라 없고, 전달값은 args라고 하는 String 배열이 넘어오게 되는 것

   > 프로그램이 처음 실행 될 때에도 어떤 값을 전달해서 똑같은 소스코드라도 입력되는 값에 따라 특정 기능을 서로 다르게 수행하도록 할 수 있음.

     1. IntelliJ 오른쪽 상단에 Current File 클릭
     2. Edit Configurations 클릭
     3. 왼쪽 상단에 +버튼 누르고 Application 클릭
     4. 파일 이름 정하고 main class에서 적용할 클래스 선택
     5. Program Arguments에서 전달값 정의 후 OK

   (예시)

for (String s = args) {
	System.out.println(s); // 이때 위 방법으로 정한 전달값이 출력됨
}

if (args.length == 1) {
	switch (args[0]) {
		case “1”:
			System.out.pritnln(“도서 조회 메뉴입니다.“);
			break;
		case “2”:
			System.out.pritnln(“도서 대출메뉴입니다.“);
			break;
		case “3”:
			System.out.pritnln(“도서 반납 메뉴입니다.“);
			break;
		default:
			System.out.pritnln(“잘못 입력하셨습니다.“);
			break;
	}
} else {
	System.out.println(“사용법) 1~3 메뉴 중 하나를 입력하세요.”);
}


   👉🏻args에 전달값을 1이라고 설정한 후 실행하게 되면 ”도서 조회 메뉴입니다.“가 출력되고, 두 개 이상 전달값을 설정하면 사용법이 나오게 됨.

728x90
반응형