JAVA의 객체지향을 이해하는데 가장 중요한 개념 중에 Overriding이라는 개념이 있다.
Overriding은 상속에서 다룰 예정이고, 오늘은 Overriding과 가장 헷갈려하는 개념인 Overloading을 다뤄볼 것이다.
사실 둘은 전혀 다른 개념이기 때문에, 정의를 잘 기억하고 있는 것이 중요하다.
ⓛ Method overloading
오버 로딩의 정의는 "하나의 클래스 안에서" 이름이 똑같은 메서드를 여러 개 선언하여 호출하는 것이다. 이름이 똑같기 때문에, 파라미터의 개수와 타입으로 구별한다.
class Overloading {
public static void over(int a) { ... }
public static void over(double d) { ... }
public static void over(int a, double d) { ... }
public static void main(String[] args) {
over(10);
over(10.1);
over(10, 10.1);
}
}
오버 로딩은 생성자를 오버 로딩 시키는 경우에 많이 사용된다. 생성자에서 사용하는 this 참조 변수와 this() method에 대해 알아보자.
② this reference variable vs this() method
1) this reference variable
this는 현재 자신을 참조하는 reference 변수이다. 자기 자신을 참조하는 이유가 무엇일까? 메서드의 소괄호 안에서 선언되는 파라미터 변수는 일시적으로 사용되는데도 이름을 지어주어야 한다. 그렇기 때문에 생성자의 파라미터는 내가 값을 넣어줄 인스턴스 변수와 같은 이름으로 선언하는 것이 좋다. 하지만 이름이 같으면 파라미터와 인스턴스 변수를 구분하기 어렵기 때문에 "this"를 사용하여 현재 참조하고 있는 인스턴스 변수를 명시한다.
2) this() method
this()는 같은 클래스 내에 있는 다른 생성자를 호출하는 메서드이다. 파라미터 개수가 다른 여러 개의 생성자를 만들 경우, 생성자는 한 번 밖에 호출할 수 없기 때문에 가장 많은 인자를 가진 생성자를 먼저 만든 후, 나머지 생성자는 this()를 사용하여 호출한다.
'JAVA' 카테고리의 다른 글
[JAVA] Chapter 9. String (0) | 2023.07.11 |
---|---|
[JAVA] Chapter 8. Class Variable & Class Method (0) | 2023.07.10 |
[JAVA] Chapter 7. Class (2) (0) | 2023.07.08 |
[JAVA] Chapter 7. Class (1) (0) | 2023.07.07 |
[JAVA] Chapter 6. Method (0) | 2023.07.06 |
댓글