JAVA 프로그래밍

[JAVA] 풀스택 개발자 부트캠프 009일차 ③ Over Load

selfdailycoding 2025. 1. 7. 13:26

Over Load

(함수)이름은 같고 매개변수(parameter)의 자료형이나 개수, 순서가 다른 함수.(= 동명이인)


public class MainClass {
    public static void main(String[] args) {

        MyClass cls = new MyClass();
        cls.method();
        cls.method('A');
        cls.method(123);
        cls.method('B',234);
        cls.method(456, 'C');

        String str = "123";
        // String -> Integer
        int num10 = Integer.parseInt(str);
        System.out.println(num10);

        str = "1010";
        // 2진수(String) -> 10진수
        num10 = Integer.parseInt(str, 2);
        System.out.println(num10);

        int count = cls.countFunc(1,2,3,4,5);
        System.out.println("가변인수의 총합을 구하면? " + count);

    }
}

 

class MyClass{

    void method(){
        System.out.println("MyClass method()가 실행되는지 확인하는 출력 구문");
    }

    void method(char c){
        System.out.println("MyClass method(char c)가 실행되는지 확인하는 출력 구문");
    }
    void method(int i){
        System.out.println("MyClass method(int i)가 실행되는지 확인하는 출력 구문");
    }
    void method(char c, int i){
        System.out.println("MyClass method(char c, int i)가 실행되는지 확인하는 출력 구문");
    }
    void method(int i, char c){
        System.out.println("MyClass method(int i, char c)가 실행되는지 확인하는 출력 구문");
    }

    /*
    오버로드에 위배가 됨. 사용할 수 없음.

    int method(int i){
        System.out.println("MyClass method(int i)");
        return 0;
    }
    */

    // 가변인수
    int countFunc(int...number){
        int count = 0;
        for ( int i = 0 ; i < number.length ; i++){
            count = count + number[i];
        }
        return count;
    }
}