본문 바로가기
  • Let's study
알고리즘/Java

[Java] 오버로딩(Overloading)

by 코딩고수이고파 2026. 7. 23.

오버로딩은 같은 이름의 메서드나 생성자를 여러 개 정의하는 것이다.

단, 매개변수의 개수나 타입이 달라야 한다.

메서드 오버로딩

introduce()라는 같은 이름의 메서드를 여러 형태로 정의하였다.

 

public void introduce() {
    System.out.println("안녕하세요");
}

public void introduce(String name) {
    System.out.println("안녕하세요 %s입니다.".formatted(name));
}

public void introduce(int age) {
    System.out.println("안녕하세요 %d세입니다.".formatted(age));
}

public void introduce(String name, int age) {
    System.out.println("안녕하세요 %d세 %s입니다.".formatted(age, name));
}

 

호출하는 매개변수에 따라 자바가 알맞은 메서드를 자동으로 선택한다.

 

Person p1 = new Person();

p1.introduce();
p1.introduce(10);
p1.introduce("홍길동");
p1.introduce("홍길동", 20);

생성자 오버로딩

생성자도 오버로딩이 가능하다.

 

public Person() {
    System.out.println("기본 생성자");
}

public Person(int age, String name) {
    System.out.println("매개변수 2개인 생성자");
}

 

객체를 생성할 때 전달하는 인자에 따라 다른 생성자가 호출된다.

 

Person p2 = new Person();
Person p3 = new Person(20, "홍길동");

 

  • new Person() → 기본 생성자 호출
  • new Person(20, "홍길동") → 매개변수 2개인 생성자 호출

'알고리즘 > Java' 카테고리의 다른 글

[Java] Scanner와 System.out 입출력 대체하기  (0) 2026.07.23
레이어드 아키텍처  (0) 2026.07.22
[Java] try-catch  (0) 2026.07.21
[Java] 자바 스트림, 람다  (0) 2026.07.20
[Java] 캡슐화(Encapsulation)  (0) 2026.07.15

댓글