1. 오버로딩이란?
이름이 같은 메소드 혹은 생성자를 여러 개 정의하는 것. (중복 정의) !! 각각의 메소드/생성자가 가지고 있는 매개 변수(개수, 타입, 순서)가 달라야 한다 !!
이처럼 매개변수의 타입, 개수, 순서가 달라야 한다. (6 - int / 7 - double / 8 - String)
오버로딩 > 매개변수의 타입과 위치는 정확히 일치해야 하지만,
매개변수의 이름은 일치하지 않아도 됨.
오버라이딩 > 매개변수의 타입, 개수, 순서, 그리고 이름까지 모두 일치
2. 메소드 오버로딩 예시
메소드 이름이 add로 동일하지만, 매개변수 타입이 달라서 다른 메서드로 인식한다
String 타입도 같이 쓰기 위해서 (" " 도 넣으려고) (괄호 안에는 int 타입 2개만 들어가야함) System.out.println(obj.add(10, 20) + " "); 라고 쓴 것.
<이것 또한 메소드 오버로딩> - 메소드 명은 같은데 매개변수가 다르니까!
3. 생성자 오버로딩이란?
클래스 내에서 동일한 이름을 가진 생성자를 여러 개 정의하는 것. 다른 매개변수 목록을 가진 여러 개의 생성자를 선언하여 다양한 방법으로 객체를 초기화 함.
3-1. 생성자 오버로딩 예시
위의 코드에서 Person 클래스에는 두 개의 생성자가 오버로딩되어 있다. 첫 번째 생성자인 Person(String name)은 이름만을 매개변수로 받아 객체를 초기화 한다. 두 번째 생성자인 Person(String name, int age)는 이름과 나이를 매개변수로 받아 객체를 초기화 한다. 따라서, 생성자 오버로딩을 사용하면 다양한 매개변수 조합을 가지는 생성자를 정의하여 객체를 초기화할 수 있습니다.
main에서 인스턴스화 했을 때 Person ps1 = new Person("성규"); Person ps2 = new Person("토비", 27); 이런 식으로 작성해줘야 각자 알맞게 들어간다. 호출도 sout(ps1); 이런식?
<출력> 일반적으로 출력은 사용자에게 정보를 제공하기 위해 사용. 결과를 화면에 표시하거나 파일에 쓰는 것 <반환> 메서드는 일련의 작업을 수행하고 그 결과로 값을 반환할 수 있다. 반환된 값은 메서드를 호출한 곳으로 전달되며, 이 값을 변수에 저장하거나 다른 연산에 사용할 수 있다.
Share article