로그인 회원가입
모두인포
전체IT경제사회생활스포츠시사여행연애

자바 Overloading(오버로딩)

lmkfox · 2025-07-17 · 조회 0
자바 Overloading(오버로딩)
자바에서 **Overloading(오버로딩)**은 같은 이름의 메서드를 매개변수의 수, 타입, 순서를 다르게 하여 여러 개 정의하는 것을 의미합니다. 이는 컴파일 타임에 결정되는 정적 바인딩이며, 메서드 호출의 유연성과 편의성을 높이는 중요한 문법입니다. 오버로딩이란? - 하나의 클래스 안에서 동일한 이름의 메서드를 정의할 수 있도록 해주는 기능입니다. - **매개변수(parameter)**의 형태(개수, 타입, 순서)가 달라야 합니다. - 반환값(return type)은 오버로딩의 조건이 되지 않습니다. 오버로딩의 목적 - 코드 가독성 향상 - 동일한 동작을 이름을 바꾸지 않고도 다양한 방식으로 처리 가능 - 유연한 메서드 제공 - 인자의 수나 타입에 따라 맞춤 처리를 쉽게 구현 가능 - API 사용성 증가 - 개발자 입장에서 다양한 입력값을 쉽게 처리할 수 있도록 돕는 구조 제공 오버로딩의 문법 조건 조건 항목 설명 메서드 이름 같아야 함 매개변수 개수 다르거나 매개변수 타입 다르거나 매개변수 순서 다르면 오버로딩 성립 반환 타입 같거나 달라도 무관 (단, 반환 타입만 다르면 오버로딩 안 됨) 예제 코드 public class Calculator { public int add(int a, int b) { return a + b; } public double add(double a, double b) { return a + b; } public int add(int a, int b, int c) { return a + b + c; } public String add(String a, String b) { return a + b; } } 호출 예시 Calculator cal = new Calculator(); System.out.println(cal.add(1, 2)); // int형 → 3 System.out.println(cal.add(1.5, 2.5)); // double형 → 4.0 System.out.println(cal.add(1, 2, 3)); // 3개 int → 6 System.out.println(cal.add("Hello, ", "World")); // 문자열 → "Hello, World" 오버로딩과 오버라이딩의 차이 항목 오버로딩 (Overloading) 오버라이딩 (Overriding) 적용 대상 같은 클래스 내부 상속 관계 (부모 → 자식 클래스) 메서드 이름 같음 같음 매개변수 개수/타입/순서가 다름 동일해야 함 반환 타입 무관 동일 또는 하위 타입 접근 제어자 무관 부모보다 좁을 수 없음 바인딩 시점 컴파일 시 (정적 바인딩) 실행 시 (동적 바인딩) 오버로딩 유의사항 - 오버로딩은 함수 시그니처(이름 + 매개변수) 기준으로 성립합니다. 즉, 반환 타입만 다르고 매개변수 구성이 같다면 컴파일 에러가 발생합니다. // 오류 예시 public int print(String s) { return 1; } public double print(String s) { return 2.0; } // 오류 발생: 반환 타입만 다름 생성자 오버로딩 자바에서는 생성자도 오버로딩할 수 있습니다. public class Person { String name; int age; public Person() { this.name = "이름 없음"; this.age = 0; } public Person(String name) { this.name = name; this.age = 0; } public Person(String name, int age) { this.name = name; this.age = age; } } 마무리 자바의 오버로딩은 같은 기능을 다양한 형태로 제공하여 코드의 재사용성과 가독성을 높이는 데 매우 유용합니다. 라이브러리 설계, API 제작, 유틸리티 클래스 구현 시 자주 활용되므로, 다양한 사례를 직접 구현해보며 익히는 것이 좋습니다.

댓글

아직 댓글이 없습니다.

로그인 후 댓글을 남길 수 있습니다.