*메소드 오버로딩 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이라고 설정한 후 실행하게 되면 ”도서 조회 메뉴입니다.“가 출력되고, 두 개 이상 전달값을 설정하면 사용법이 나오게 됨.
'Study > Back' 카테고리의 다른 글
Aug.28.Mon.2023 Java 수업 1일차 (2) | 2023.08.28 |
---|---|
Aug.05.Sat.2023 나도코딩 Java 퀴즈#6 (9) | 2023.08.05 |
Jul.31.Mon.2023 나도코딩 Java 메소드Method ~ 전달값과 반환값 (1) | 2023.07.31 |
Jul.29.Sat.2023 나도코딩 Java 다차원배열 ~ Quiz#5 (2) | 2023.07.29 |
Jul.28.Fri.2023 나도코딩 Java 배열 ~ 배열 순회 (4) | 2023.07.28 |