오버로딩 (메소드 / 생성자)

Jan 28, 2024
오버로딩 (메소드 / 생성자)

1. 오버로딩이란?

이름이 같은 메소드 혹은 생성자를 여러 개 정의하는 것. (중복 정의) !! 각각의 메소드/생성자가 가지고 있는 매개 변수(개수, 타입, 순서)가 달라야 한다 !!
notion image
이처럼 매개변수의 타입, 개수, 순서가 달라야 한다. (6 - int / 7 - double / 8 - String)
💡
오버로딩 > 매개변수의 타입과 위치는 정확히 일치해야 하지만, 매개변수의 이름은 일치하지 않아도 됨. 오버라이딩 > 매개변수의 타입, 개수, 순서, 그리고 이름까지 모두 일치
 

2. 메소드 오버로딩 예시

notion image
메소드 이름이 add로 동일하지만, 매개변수 타입이 달라서 다른 메서드로 인식한다
notion image
String 타입도 같이 쓰기 위해서 (" " 도 넣으려고) (괄호 안에는 int 타입 2개만 들어가야함) System.out.println(obj.add(10, 20) + " "); 라고 쓴 것.
 
<이것 또한 메소드 오버로딩> - 메소드 명은 같은데 매개변수가 다르니까!
notion image
 

3. 생성자 오버로딩이란?

클래스 내에서 동일한 이름을 가진 생성자를 여러 개 정의하는 것. 다른 매개변수 목록을 가진 여러 개의 생성자를 선언하여 다양한 방법으로 객체를 초기화 함.
 

3-1. 생성자 오버로딩 예시

notion image
위의 코드에서 Person 클래스에는 두 개의 생성자가 오버로딩되어 있다. 첫 번째 생성자인 Person(String name)은 이름만을 매개변수로 받아 객체를 초기화 한다. 두 번째 생성자인 Person(String name, int age)는 이름과 나이를 매개변수로 받아 객체를 초기화 한다. 따라서, 생성자 오버로딩을 사용하면 다양한 매개변수 조합을 가지는 생성자를 정의하여 객체를 초기화할 수 있습니다.
main에서 인스턴스화 했을 때 Person ps1 = new Person("성규"); Person ps2 = new Person("토비", 27); 이런 식으로 작성해줘야 각자 알맞게 들어간다. 호출도 sout(ps1); 이런식?
 

 
<출력> 일반적으로 출력은 사용자에게 정보를 제공하기 위해 사용. 결과를 화면에 표시하거나 파일에 쓰는 것 <반환> 메서드는 일련의 작업을 수행하고 그 결과로 값을 반환할 수 있다. 반환된 값은 메서드를 호출한 곳으로 전달되며, 이 값을 변수에 저장하거나 다른 연산에 사용할 수 있다.
 
Share article

codingb